由于 PCI DSS 扫描限制,我需要从发送到我的 IIS 站点的所有 http 请求中删除“服务器”标头。我正在运行最新版本的 Windows Server 2016,并使用最新版本的 IIS 10。IIS 请求过滤角色安装在角色和功能中。
我的配置文件如下所示:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering removeServerHeader="true" />
</security>
</system.webServer>
</configuration>
我正在提供一个静态文件,为了进行本次测试,它被称为index.html
并包含<html></html>
。
创建配置文件、重新启动 IIS 并请求文件后,IIS 仍在发送服务器标头:
我知道的唯一其他方法是安装 IIS-rewrite 模块,但这是极其不可取的,因为我们正在运行服务器场,并且这需要对多台服务器和服务器映像进行操作。
我还可以尝试其他什么方法来使请求过滤正常工作吗?
有没有其他方法可以删除不需要 IIS 重写的服务器标头?
PS 我可以通过在 IIS 中创建一个新站点,并创建一个索引文件和一个如上所述的 Web 配置在多台服务器上重现此问题 - 感觉我遗漏了一些明显的东西。
答案1
IIS 10.0 添加了 removeServerHeader 属性来抑制向远程客户端发送 HTTP 服务器标头。
以前的 IIS 版本不支持。