删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET

最近在看响应头,看到iis站点里面包含了iis信息和开发语言信息,于是查询了此类文章,主要针对结尾文章的翻译,并做了部分删减和图片优化替换。

步骤总览

1.安装URLRewrite(iis官方5M左右)

2.在相应站点的URLRewrite 功能里添加服务器变量(改哪个就设置哪个):

RESPONSE_SERVER(对应Server)

RESPONSE_X-POWERED-BY (对应X-Powered-By)

RESPONSE_X-ASPNET-VERSION(对应X-AspNet-Version)

3.在相应站点的URLRewrite 功能设置出站规则,将原有的Server、X-Powered-By、X-AspNet-Version 替换成其他值或者直接设置为空

tip:响应头X-AspNet-Version的去除,引文其name本身包含aspnet关键字 所以建议使用 webconfig设置 system.web节点下添加 

这篇博文的目的是讨论如何从响应中删除不需要的 HTTP 响应标头。 通常,出于安全原因,我们有 3 个响应标头,许多人希望将其删除。

  • Server - 指定 Web 服务器版本。
  • X-Powered-By - 表示网站“由 ASP.NET 提供支持”。
  • X-AspNet-Version - 指定使用的 ASP.NET 版本。

在继续之前,您应该评估是否需要删除这些标题。 如果您因为网站上的安全扫描而决定删除这些标题,您可能需要阅读 David Wang 的以下博客文章。

https://blogs.msdn.com/b/david.wang/archive/2006/03/29/silly-security-scans.aspx 

如果您想继续删除标题,请遵循以下选项。

Server Header 

有三种方法可以从响应中删除 Server 标头。 最好的方法是使用第三个选项,本人只尝试了第三种

1. 使用注册表项 (未尝试)

创建一个名为 DisableServerHeader 在以下注册表项中并且设置值为 1

HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第1张图片

添加注册表项后,使用 net stop http 命令和 net start http 命令重新启动 HTTP 服务。 如果 HTTP 服务未启动,则使用 iisreset 命令。 如果这也不起作用,那么您可以重新启动服务器。

请注意,此方法仅在 Server 标头为“ Microsoft-HTTPAPI/2.0 ”时使用。

当请求到达 IIS 时,它首先到达 http.sys 驱动程序。 HTTP.SYS 驱动程序要么自己处理请求,要么将其发送到用户模式以进行进一步处理。 当请求进入用户模式时,它会将服务器标头返回为“ Microsoft-IIS/7.5.”。

但是,当请求从 HTTP.SYS 驱动程序返回时,服务器标头将显示为“ Microsoft-HTTPAPI/2.0 ”。 通过放置上述注册表项,它将删除此特定标头

如果您想将 Server 标头删除为“ Microsoft-IIS/7.5.”, 请按照以下方法操作。

2. 使用 URLScan 工具(未尝试)

在您的机器上安装 URLScan。 请按照以下链接进行操作

https://www.iis.net/downloads/microsoft/urlscan 

安装 URLScan 后,打开通常位于 %WINDIR%\System32\Inetsrv\URLscan 文件夹中的 URLScan.ini 文件。 打开后,搜索键 RemoveServerHeader 。 默认情况下,它设置为 0,但要删除 Server 标头,请将值更改为 1 删除 Server 标头 Server: Microsoft-IIS/7.5 用户模式响应中

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第2张图片

请注意,URLScan 在全球范围内所做的更改适用于您的所有站点。 如果您想为特定站点设置此设置,请查看以下文章(站点过滤器部分)

https://www.iis.net/learn/extensions/working-with-urlscan/urlscan-setup 

使用 URLScan 也有一些陷阱。 您可以通过以下 URL 了解这些陷阱:

https://msdn.microsoft.com/en-us/library/ff648552.aspx\#ht\_urlscan\_008 

3. 使用 URLRewrite (本人使用,修改为我自己的图片)

如果您不想使用 URLScan,则可以使用 URLRewrite 模块删除 Server 标头的值。 请注意,它不会一起删除标题,但会删除它的值。

步骤 1. 安装 URLRewrite。 要安装 URLRewrite,请转到iis官方链接(下载,安装即可大小5M左右)

https://www.iis.net/downloads/microsoft/url-rewrite 

步骤 2. 打开您要删除服务器标头的站点,然后双击 URL重写(URLRewrite ) 部分

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第3张图片

步骤 3. 单击 右侧 操作窗格的 查看服务器变量(View Server Variables)

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第4张图片

步骤 4. 单击添加按钮,然后在提供的文本框中输入“ RESPONSE_SERVER”

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第5张图片

第 5 步。现在我们需要创建出站规则。 要了解如何创建出站规则,

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第6张图片

 添加规则(Add Rule) - 选择出站规则(Outbound rules)栏的空白规则(Blank rule)

更多进出站规则设置参考链接

https://www.iis.net/learn/extensions/url-rewrite-module/creating-outbound-rules-for-url-rewrite-module 

步骤 7. 编辑出站规则如下。

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第7张图片

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第8张图片

 名称:Remove Server  变量名称:RESPONSE_SERVER 其他按图填写

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第9张图片

请注意,这是特定于网站的规则。 如果要为所有应用程序创建规则,请在服务器级别创建规则。 此外,某些应用程序,尤其是第三方应用程序,可能需要 Server 标头,因此您可能需要为这些应用程序删除此规则。


X-Powered-By

也有两种方法可以删除此标头。

1. 使用 IIS HTTP 响应标头。

打开您要打开的站点,然后单击 HTTP 响应标头(HTTP Response Headers)选项。

删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第10张图片单击 X-Powered-By 标题,然后单击操作窗格上的删除以将其从响应中删除,当然也可以编辑成其他的

 删除不需要的 HTTP 响应标头 Server:Microsoft-IIS/7.5 X-Powered-By:ASP.NET_第11张图片

2. 使用 URLRewite 规则(见 Server 响应头处理)

请注意,它不会一起删除标题,但会删除它的值。

Server 头处理相同,两个点不同

1.建立的服务器变量(View Server Variables)名称为 RESPONSE_X-POWERED-BY

2.创建出站规则页面的变量名称(Variables Name)填写 同步为 RESPONSE_X-POWERED-BY


X-AspNet-版本

也有两种方法可以删除此标头。 首选的是第一个。

1. 使用 httpRuntime 元素。

在  web.config 中添加以下行部分

2. 使用 URLRewite 规则

Server 头处理相同,两个点不同

1.建立的服务器变量(View Server Variables)名称为 RESPONSE_X-ASPNET-VERSION

2.创建出站规则页面的变量名称(Variables Name)填写 同步为 RESPONSE_X-ASPNET-VERSION

本篇博文有国外翻译而来,部分图片为实践图片修改,原文地址:Remove Unwanted HTTP Response Headers | Microsoft Docs

你可能感兴趣的:(公共常用,iis,响应头)