Windows Server IIS喜欢告诉全世界网站在 IIS 上运行。它使用 HTTP 响应中的Server标头执行此操作,如下所示。在这篇文章中,我将向您展示如何在 IIS 中删除响应服务器标头。你不想给黑客太多关于你的服务器的信息,嗯?;-)。
微软互联网信息服务
尽管我不是默默无闻的安全爱好者(你是吗?),但安全专家通常建议删除常见的服务器响应标头。攻击者可能会通过查看 Web 服务器返回的响应标头来获得有关您的服务器和网络的大量信息。
因此,建议您至少删除其中一些标头。
但是让我们从正常的 HTTP HEAD 响应的样子开始:
- HTTP/1.1 200 OK
- Content-Length: 0
- Content-Type: text/html; charset=UTF-8
- Vary: Accept-Encoding
- Server: Microsoft-IIS/8.0
- X-UA-Compatible: IE=Edge,chrome=1
- Date: Sun, 06 Jul 2014 10:05:34 GMT
- Connection: close
在这里,您注意到IIS在标头中显示其版本信息Server
,作为响应:
Server: Microsoft-IIS/8.0
与删除 IIS 中的 ETag 标头一样,您可以使用 URL Rewrite Module outboundRule重写和清空IISServer:
中的HTTP 响应标头。
希望在 IIS (或更多 HTTP 安全标头)上启用 HTTP Strict-Transport-Security (HSTS )?
不幸的是,您不能真正删除 Server 标头。但是您可以重写其内容并将其清空。在IIS 7+(IIS 7、8.5、8.0、8.5、IIS 10.0)上,使用重写 outboundRule从Server:
标头响应中删除 Web 服务器版本信息。
您可以使用以下URL 重写出站规则:
-
-
-
-
-
-
outboundRule 所做的是:它Server:
在输出响应流中查找标头(或 serverVariable),并用空字符串(无)重写该值。
最终结果是一个空的Server:
响应标题行:
- HTTP/1.1 200 OK
- Content-Length: 0
- Content-Type: text/html; charset=UTF-8
- Vary: Accept-Encoding
- Server:
- X-UA-Compatible: IE=Edge,chrome=1
- Date: Sun, 06 Jul 2014 10:06:08 GMT
- Connection: close
您现在已经成功地Server
从 HTTP 标头中删除了版本响应!
这是特定于网站的规则。如果要为所有应用程序创建规则,则必须在服务器级别创建规则。此外,某些应用程序,尤其是第三方应用程序,可能需要并依赖于 Server 标头。然后,您可能需要为这些应用程序删除此规则。
如何在 IIS 上启用 HTTP 严格传输安全 (HSTS)
重写响应头的有趣之处在于您可以显示自己的信息字符串。例如,如果您在 Rewrite 操作中提供一个值,则会显示该消息:
- value="Saotn Server Software systems, LTD." />
- HTTP/1.1 200 OK
- Content-Length: 0
- Content-Type: text/html; charset=UTF-8
- Vary: Accept-Encoding
- Server: Saotn Server Software systems, LTD.
- X-UA-Compatible: IE=Edge,chrome=1
- Date: Sun, 06 Jul 2014 11:19:16 GMT
- Connection: close
这不是很有趣,现在是吗?:)
如何使用 PowerShell 从 Windows Server 中删除 IIS
使用 web.config customHeaders 删除 IIS 中的 ASP.NET X-Powered-By 标头
默认情况下, IIS通过放置X-Powered-By标头来告诉世界它由ASP.NET提供支持:
- HTTP/1.1 200 OK
- Content-Length: 0
- Content-Type: text/html; charset=UTF-8
- Vary: Accept-Encoding
- Server:
- X-Powered-By: ASP.NET
- X-UA-Compatible: IE=Edge,chrome=1
- Date: Sun, 06 Jul 2014 10:07:37 GMT
- Connection: close
可以使用位于web.config
节点中的 customHeaders 设置删除此响应标头
:
-
-
-
现在,X-Powered-By
标头已从响应标头输出中删除
- HTTP/1.1 200 OK
- Content-Length: 0
- Content-Type: text/html; charset=UTF-8
- Vary: Accept-Encoding
- Server:
- X-UA-Compatible: IE=Edge,chrome=1
- Date: Sun, 06 Jul 2014 10:10:02 GMT
- Connection: close
了解有关各种HTTP 安全标头的更多信息。
X-AspNet-Version 标头
X-AspNet-Version
HTTP Header 向全世界广播正在使用的ASP.NET版本。
在应用程序的 web.config 文件中的节点内添加以下内容:
- enableVersionHeader="false" />
IIS 10.0 中的 removeServerHeader requestFiltering
在 IIS 10.0 (Windows Server 2016/2019) 中,您可以通过在system.webServer节点中配置requestFiltering来移除Server标头:web.config
-
或者在 IIS 管理器的配置编辑器中:
在 IIS 配置管理器 requestFiltering 节点中将 removeServerHeader 设置为 True。
这样您就不必摆弄复杂的出站重写规则。要删除 ASP.NET 的X-Powered-By标头,您仍然需要customHeaders
上面提到的部分。
-
相关阅读:
webpack的安装
内存管理的相关概念
vue实现搜索文字高亮功能
新零售mysql设计(采购表 入库信息表 入库商品表)
软件项目管理–进度计划
图解python | Anaconda安装与环境设置
欧科云链:成本与规模之辨——合规科技如何赋能香港Web3生态?
linux taskset命令
JUC-无锁
一加Nord N300 5G什么时候发布 一加Nord N300 5G配置如何
-
原文地址:https://blog.csdn.net/allway2/article/details/126432258