经典 ASP -- 防止 HTTP Header 注入

Classic ASP -- Protect Against HTTP Header Injection

我正在尝试保护经典 ASP Web 应用程序免受 HTTP Header 注入式 XSS 攻击,但我无法找到一个解决方案来停止在用户代理字符串中找到的脚本。

这是对 Web 应用程序的 HTTP 请求示例:

HTTP Request
GET /WebApp/Login.aspx HTTP/1.1
Host: WebServer.Webapp.Com
User‐Agent: Mozilla/5.0 (X11; Linux x86_64; rv:41.0) Gecko/20100101 Firefox/41.0**alert(1)**
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept‐Language: en‐US,en;q=0.5
Accept‐Encoding: gzip, deflate
Cookie: ASP.NET_SessionId=foobarID
Connection: keep‐alive

基本上我们要做的是防止用户代理字符串中的警报脚本在页面加载时触发。我一直在做很多研究,但未能为这个旧应用程序找到太多帮助。 我们确实将 validateRequest 和 EnableHeaderChecking 设置为 true,但此脚本仍会执行。非常感谢任何帮助。

问题是出于调试目的在页面底部呈现的用户代理字符串(带有恶意脚本)。如果您遇到此问题,请检查您是否没有在页面上显示带有错误脚本的对象。

如果是,请记住使用 HTML 编码来安全地呈现它。

感谢 the_lotus 和 Lankymart 的快速解答。