如何使用C#在asp.net 3.5中的url查询字符串中处理XSS

时间:2016-07-14 18:31:52

标签: c# asp.net vb.net xss antixsslibrary

我目前正试图通过Url中的XSS攻击来保护我的网站安全。例如,如果攻击者使用Firefox,他们可以执行以下操作

myxsssite.com/mypage.aspx?d"><script class="none&>alert(1);</script clas="none&><!--=1

脚本将会运行。我现在已经搜索了几天,似乎无法找到有效的解决方案。目前,我已经尝试过MS的AntiXSS库。我不认为它正常工作我会像这样编码整个网址

Mircosoft.Security.Application.Encoder.HtmlEncode(path);

我已经尝试过这个类中的所有其他方法,并且在页面加载之前脚本仍在执行。我使用ASP.net 3.5和Webforms,我无法升级。

1 个答案:

答案 0 :(得分:1)

https://www.microsoft.com/en-us/download/details.aspx?id=28589

他们有这个dll,基本上所有你需要做的就是使用sanitize方法,如果原始值和清理值之间有变化,这意味着可能有尝试XSS,你要么扔这一切或只是使用消毒的价值。

不要使用任何编码方法,有一个名为“sanitize”的方法。

编辑:代码示例

val = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(val);
val = System.Web.HttpUtility.HtmlDecode(val);

编辑2: https://www.nuget.org/packages/HtmlSanitizationLibrary/

我正在使用的dll是HtmlSanitizationLibrary.dll