esk*_*ers 1 c# vb.net asp.net xss antixsslibrary
我目前正在尝试保护我的网站免受 Url 中的 XSS 攻击。例如,如果攻击者使用 Firefox,他们可以执行以下操作
myxsssite.com/mypage.aspx?d"><script class="none&>alert(1);</script clas="none&><!--=1
Run Code Online (Sandbox Code Playgroud)
并且脚本将被运行。我已经搜索了几天,似乎找不到有效的解决方案。目前我已经尝试过 MS 的 AntiXSS 库。我认为它不能正常工作,我正在像这样编码整个 url
Mircosoft.Security.Application.Encoder.HtmlEncode(path);
Run Code Online (Sandbox Code Playgroud)
我也尝试了这个类中的所有其他方法,并且在页面加载之前脚本仍在执行。我将 ASP.net 3.5 与 Webforms 一起使用,但无法升级。
https://www.microsoft.com/en-us/download/details.aspx?id=28589
他们有这个 dll,基本上你需要做的就是使用 sanitize 方法,如果原始值和 sanitized 值之间有变化,这意味着可能存在 XSS 尝试,你要么全部扔掉,要么只需使用消毒值。
不要使用任何编码方法,有一种称为“消毒”的方法。
编辑:代码示例
val = Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(val);
val = System.Web.HttpUtility.HtmlDecode(val);
Run Code Online (Sandbox Code Playgroud)
编辑 2:https : //www.nuget.org/packages/HtmlSanitizationLibrary/
我使用的 dll 是 HtmlSanitizationLibrary.dll