在将网站引入PCI合规性时,我在使用这样的301重定向进行响应时遇到了IIS6 301重定向的报告漏洞:
HTTP/1.1 301 Moved Permanently
Date: Thu, 15 May 2014 18:37:36 GMT
Server: Microsoft-IIS/6.0
Pragma: no-cache
Cache-Control: no-cache
Content-Type: text/html
Content-Length: 251
Location: http://www.xxxxxx.com/no5_such3_file7.pl?"><script>alert(12345);</script>
<html><body>
The requested resource was moved. It could be found here:
<a href="http://www.xxxxxx.com/no5_such3_file7.pl?"><script>alert(12345);</script>">
http://www.xxxxxx.com/no5_such3_file7.pl?><script>alert(12345);</script></a>
</body></html>
根据PCI扫描,这可以允许在浏览器中注入脚本,这些浏览器在遇到“位置”时不会忽略响应的主体。报头中。
为了解决这个问题,我想我可以添加/更改重定向规则来过滤来自查询字符串的潜在危险文本(我不是真的想做)或改变正文中发送的文本用于301重定向。我更倾向于不在响应主体中发送任何内容而不是在我的重定向规则中尝试计算攻击。如何自定义正文中返回的文本以进行301重定向?我曾尝试通过IIS添加自定义错误页面,但它似乎不支持301的自定义方法。我需要在不久的将来在IIS6和IIS7 +中工作,所以任何适用于其中一个或两个版本的解决方案都是受欢迎的。
编辑 - 此外,这会产生SEO后果吗?我假设谷歌等公司忽略301重定向的响应主体与大多数浏览器一样,但我想避免因排除响应主体而受到处罚。