如何删除IIS 8.0/8.5中的服务器标头响应?
我当前的服务器报告:Microsoft-IIS/8.0
Microsoft-IIS/8.5
对于IIS7.0,我使用的是URLScan 3.1,但它只支持IIS7.0,不支持8.x
发布于 2014-04-11 20:30:28
遗憾的是,您可以在网上找到的有关删除IIS中的"Server“标头的大多数建议都不适用于IIS 8.0和8.5。我发现唯一可行的选择,在我看来,也是最好的,就是使用IIS Native-Code模块。
本机代码模块与更常见的托管模块不同,因为它们是使用win32 API而不是ASP.NET编写的。这意味着它们适用于所有请求(包括静态页面和图像),而不仅仅是通过ASP.NET管道的请求。使用Native-Code模块,可以在请求的最后删除不需要的标头,这意味着您可以删除标头(包括"Server“标头),而不管它们被设置在哪里。
下面的文章中提供了IIS 7.0到8.5中用于删除标头的示例Native-Code模块的二进制文件和源代码。
http://www.dionach.com/blog/easily-remove-unwanted-http-headers-in-iis-70-to-85
发布于 2018-11-09 19:40:41
从IIS10.0开始,现在可以从web.config
中删除Server
报头:
<security>
<requestFiltering removeServerHeader ="true" />
</security>
有关如何删除所有不需要的/不必要的标头的更多详细信息,请参阅here。
请注意,这对“应用程序”隐藏了服务器头,就像所有其他方法一样。例如,如果您到达某个默认页面或由IIS本身或应用程序外部的ASP.NET生成的错误页面,则这些规则将不适用。因此,理想情况下,它们应该在IIS中的根级别上,并且该sill可能会将一些错误响应留给IIS本身。
在IIS10中有一个bug,这使得它有时甚至在配置的情况下也会显示报头。现在应该已经修复了,但是IIS/Windows必须更新。
发布于 2018-06-04 20:24:17
对于上面的问题,在Global.asax.cs中添加以下代码
protected void Application_PreSendRequestHeaders()
{
Response.Headers.Remove("Server");
Response.AddHeader("Sample1", "Value1");
}
在浏览了这么多次之后,问题得到了解决。
https://stackoverflow.com/questions/22401219
复制相似问题