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

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

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

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

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

答案1

您可以使用 IIS Native-Code 模块删除 IIS 7.5 中的任何标头(事实上,相同的模块应该适用于 IIS 7.0 - 8.5)。

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

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

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

答案2

网络上有很多资源可以解释如何做到这一点。仅举一个例子:

然而,我承认其中大多数并不适用于所有情况:

  • 这取决于您是否有权访问Global.asax.cs 文件源代码。
  • Global.asax方法只适用于使用 开发的网站ASP.NET。那么如果你的网站只有静态html页面,并且css或 怎么办js
  • web.config方法将无法删除Server Version 标题。

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

我选择了这种URL Rewrite方法,因此我完全独立于 Web 开发人员(如果有的话)和ASP.NET开发HTML


删除标题X-Powered-By

  1. 在 中IIS Manager,导航到您的网站
  2. 选择HTTP Response Header
  3. 选择X-Powered-By并点击Remove

为了删除Server Version标题,我使用了URL RewriteMicrosoft 的扩展:

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

我希望,像我一样,您会发现这些链接对于实现我所说的内容非常有用:


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

相关内容