我目前正试图通过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,我无法升级。
答案 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