如何防止我们的 URL 遭受跨站脚本攻击 (XSS)?

How to prevent our URL from Cross-site scripting (XSS)?

请建议我通过 URL 停止跨站点脚本 (XSS) 的最佳方法。

示例见下文 URL 以及此次攻击的影响后。

https://example.com/questions/ask.aspx?hf=15315%27%3balert("XSS")%2f%2f150

然后在浏览器上出现警报。

验证 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);