无法通过请求过滤删除“服务器”标头

cae*_*say 6 windows iis pci request-filtering

由于 PCI DSS 扫描限制,我需要从传入我的 IIS 站点的所有 http 请求中删除“服务器”标头。我正在使用最新版本的 IIS 10 运行最新版本的 Windows Server 2016。IIS 请求筛选角色安装在角色和功能中。

我的配置文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我正在提供一个静态文件,出于此测试的目的,它被称为index.html并包含<html></html>.

创建配置文件、重新启动 IIS 并请求该文件后,IIS 仍在发送服务器标头:

在此输入图像描述

我知道的唯一其他方法是安装 IIS 重写模块,但是这是非常不可取的,因为我们正在运行服务器场,并且需要对多个服务器和服务器映像执行此操作。

我还可以尝试其他方法来使请求过滤正常工作吗?

有没有其他方法可以删除不需要 IIS 重写的服务器标头?

PS 我可以通过在 IIS 中创建一个新站点并创建一个索引文件和一个 Web 配置(如上所述)在多个服务器上重现此内容 - 感觉我错过了一些明显的东西。

小智 1

IIS 10.0 添加了removeServerHeader 属性来禁止向远程客户端发送HTTP 服务器标头。

以前的 IIS 版本不支持。