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标头值即可.
以下是步骤:
首先,从以下链接下载UrlRewrite模块:http://www.iis.net/downloads/microsoft/url-rewrite 并将其安装在IIS服务器上.之后,在cmd控制台上通过此命令重新启动IIS
iisreset /restart
Run Code Online (Sandbox Code Playgroud)将以下项添加到<system.WebServer>标记下的Web配置文件中.您可以将任何内容写入Value项作为服务器名称.

最后,我们更改了数据标头上的IIS版本名称.再次重新启动IIS.通过cmd控制台.
额外奖励:如果你想测试你的网站是否有效......你可以使用"HttpRequester"mozilla firefox插件.这个插件:https://addons.mozilla.org/En-us/firefox/addon/httprequester/
PS:我测试了它,它在IIS服务器上为我工作.不是由Visual Studio创建的temproray IIS服务器.
遗憾的是,您在网上找到的用于删除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)
经过这么多浏览,问题解决了。
现在可以从 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。
| 归档时间: |
|
| 查看次数: |
50282 次 |
| 最近记录: |