【发布时间】:2018-04-01 06:03:26
【问题描述】:
请建议我通过 URL 阻止跨站脚本 (XSS) 的最佳方法。
例如参见下面的 URL 和此攻击的影响。
https://example.com/questions/ask.aspx?hf=15315%27%3balert("XSS")%2f%2f150
在此之后,浏览器上会出现警报。
【问题讨论】:
标签: javascript asp.net xss
请建议我通过 URL 阻止跨站脚本 (XSS) 的最佳方法。
例如参见下面的 URL 和此攻击的影响。
https://example.com/questions/ask.aspx?hf=15315%27%3balert("XSS")%2f%2f150
在此之后,浏览器上会出现警报。
【问题讨论】:
标签: javascript asp.net xss
验证 http 输入请求参数,然后将其用作参数或在返回的页面中呈现。您也可以将参数值列入白名单。
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
【讨论】:
对于 ASP.NET,您可以使用 System.Web.Security.AntiXssEncoder 将文本包装在 HtmlEncode 中。这应该可以防止恶意行为者将脚本保存到您的数据库中,这些脚本将在浏览器中执行。
entity.SomeValue = AntiXssEncoder.HtmlEncode(model.SomeValue);
【讨论】:
AntiXssEncoder.UrlEncode(inputFromQueryString)