IIS 7.5服务器响应标头(UrlScan不起作用)

过去,您可以使用Microsoft的UrlScan来修改标题,并删除显示IIS版本的标题。

这不适用于IIS 7.5,IIS 7.0是支持的最新版本。 有什么办法,我仍然可以删除一些响应标题?

运行安装了IIS7.5的Windows Server 2008。

您可以使用IIS本机代码模块删除IIS 7.5中的任何头文件(实际上,相同的模块应该可以在IIS 7.0 – 8.5中使用)。

Native-Code模块与更常用的Managed模块不同,因为它们是使用win32 API而不是ASP.NET编写的。 它们适用于所有请求,包括静态页面和图像。

以下文章提供了用于删除IIS 7.0到8.5中的标头的示例Native-Code模块的二进制文件和源代码。 此模块是一个简单的MSI安装,默认情况下,将删除“服务器”“X-Powered-By”和“AspNet版本”标题。 其他标题可以使用IISconfiguration删除。

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

networking上有很多资源可以解释如何做到这一点。 只是一个样本:

不过,我承认,他们大多数不会在任何情况下工作:

  • 它将取决于你有或没有访问Global.asax.cs文件的源代码。
  • Global.asax方法仅适用于使用ASP.NET开发的网站。 那么如果你的网站只是静态的html页面,而cssjs呢?
  • web.config方法将无法删除Server Version标题。

就我而言,我决定摆脱所有与开发相关的解决方法。

我select了URL Rewrite方法,所以我完全独立于Web开发人员(如果有)以及ASP.NETHTML开发。


删除标题X-Powered-By

  1. IIS Manager ,导航到您的网站
  2. selectHTTP Response Header
  3. selectX-Powered-By ,然后单击Remove

要删除Server Version标题,我使用Microsoft的URL Rewrite扩展:

然后,我定义了一个出站规则,用一个空值重写Server Version 。 但是,我也可以写一个错误的值,如Apacheunknown ;)

我希望,像我一样,你会发现这些链接非常有助于实现我所说的:


最后,我还没有自己testing,但似乎你仍然可以使用IIS7.5/8 UrlScan