删除服务器响应标头IIS 8.0/8.5

Bas*_*anW 26 iis httpresponse http-headers

我们如何在IIS 8.0/8.5中删除服务器头响应?
我当前的服务器报告: Microsoft-IIS/8.0 Microsoft-IIS/8.5
对于IIS 7.0,我使用了URLScan 3.1但是只支持IIS 7.0而不支持8.x.

Mah*_*EFE 19

还有另一种解决方案,在我看来,这种解决方案是最好和最安全的.

您可以使用Microsoft创建的UrlRewrite模块.Url Rewrite模块会重定向您的网址,还可以在响应标头中更改您的IIS服务器名称.

您不必使用重定向属性.您只需更改Server标头值即可.

以下是步骤:

  1. 首先,从以下链接下载UrlRewrite模块:http://www.iis.net/downloads/microsoft/url-rewrite 并将其安装在IIS服务器上.之后,在cmd控制台上通过此命令重新启动IIS

    iisreset /restart
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将以下项添加到<system.WebServer>标记下的Web配置文件中.您可以将任何内容写入Value项作为服务器名称.

    在此输入图像描述

  3. 最后,我们更改了数据标头上的IIS版本名称.再次重新启动IIS.通过cmd控制台.

  4. 额外奖励:如果你想测试你的网站是否有效......你可以使用"HttpRequester"mozilla firefox插件.这个插件:https://addons.mozilla.org/En-us/firefox/addon/httprequester/

PS:我测试了它,它在IIS服务器上为我工作.不是由Visual Studio创建的temproray IIS服务器.

  • 问题是,URL重写需要服务器资源(例如CPU).因此,如果您的系统执行大量请求(例如Microsoft Exchange(EAS)服务器),则重写URL可能会导致用户出现严重延迟... (2认同)
  • 现在有更好的方法(至少在 IIS 10+ 中):/sf/answers/3725755771/ (2认同)
  • 它仅适用于 POST 和 GET 请求..服务器标头仍然显示 PUT 和 TRACE METHOD 的 IIS 版本 (2认同)

ph1*_*1ll 9

遗憾的是,您在网上找到的用于删除IIS中"服务器"标头的大多数建议都不适用于IIS 8.0和8.5.我发现唯一的工作选项,在我看来,也是最好的,是使用IIS Native-Code模块.

Native-Code模块与更常见的Managed模块不同,因为它们是使用win32 API而不是ASP.NET编写的.这意味着它们适用于所有请求(包括静态页面和图像),而不仅仅是通过ASP.NET管道传递的请求.使用Native-Code模块,可以在请求的最后删除不需要的标头,这意味着您可以删除标头(包括"服务器"标头),无论它们在何处设置.

下面的文章中提供了用于删除IIS 7.0到8.5中的标头的示例Native-Code模块的二进制文件和源代码.

http://www.dionach.com/blog/easily-remove-unwanted-http-headers-in-iis-70-to-85


小智 8

针对上述问题,在 Global.asax.cs 中添加以下代码

protected void Application_PreSendRequestHeaders() 
   {
       Response.Headers.Remove("Server");
       Response.AddHeader("Sample1", "Value1");
   }
Run Code Online (Sandbox Code Playgroud)

经过这么多浏览,问题解决了。


Ily*_*dik 8

现在可以从 IIS 10.0 开始删除Server标题web.config

<security>
  <requestFiltering removeServerHeader ="true" />
</security>
Run Code Online (Sandbox Code Playgroud)

可以在此处找到有关如何删除所有不需要/不需要的标题的更多详细信息。

请注意,这对“应用程序”隐藏了服务器标头,所有其他方法也是如此。例如,如果您到达某个默认页面或由 IIS 本身或应用程序外部的 ASP.NET 生成的错误页面,则这些规则将不适用。因此,理想情况下,它们应该位于 IIS 的根级别,并且该基台可能会给 IIS 本身留下一些错误响应。

IIS 10 中存在一个错误,即使使用 config,它有时也会显示标题。现在应该已经修复了,但必须更新 IIS/Windows。