在使站点符合 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 扫描,这可能允许在浏览器中注入(inject)脚本,在遇到“位置” header 时不会忽略响应正文。
为了解决这个问题,我想我可以添加/更改重定向规则以从查询字符串中过滤潜在危险的文本(我真的不想这样做),或者更改在正文中发送的文本301重定向。我宁愿不在响应正文中发送任何内容,也不愿尝试在重定向规则中考虑攻击。如何自定义 301 重定向正文中返回的文本?我尝试通过 IIS 添加自定义错误页面,但它似乎不支持 301 的自定义方法。我目前需要此功能在 IIS6 中工作,并且在不久的将来将在 IIS7+ 中工作,因此欢迎任何适用于任一版本或两个版本的解决方案。
编辑--此外,这会对 SEO 产生影响吗?我假设 Google 等会像大多数浏览器一样忽略 301 重定向的响应正文,但我希望避免因排除响应正文而受到惩罚。
最佳答案
关于iis - 在 IIS 中设置 301 重定向的自定义响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23687175/