首页 > 解决方案 > 在 IIS 7.5 中托管的 .Net Remoting 服务中,如何删除“Server : IIS/7.5”标记表单响应头

问题描述

我有一个 .Net 应用程序,它使用 spring.net 远程处理通过 IIS 7.5 公开远程处理服务。出于安全原因,我想从 HTTP 响应标头中删除一些信息,例如“服务器:IIS/7.5”。我轻松删除了 X-Powered-By 等其他标签,但是对于服务器标签,我尝试了互联网上提供的所有解决方案,但都没有奏效。我尝试设置 DisableServerHeader 注册表项或安装 URLrewrite 工具并更改我的 web.config 并添加 outboundRule 或任何其他编码解决方案,例如在我的 global.asax 文件中添加自定义 HTTP 模块或处理 http 上下文的 preRequestHandling。但没有一个对我有用。基本上,考虑到我正在使用 .net 3.5 和 .net 远程处理 IIS 7.5,是否可以从响应标头中删除这个值 Server ?我应该提一下,这个标签'

标签: iishttp-headershttpresponse.net-remotingservertag

解决方案


不幸的是,您不能真正删除 Server 标头。但是您可以重写其内容并将其清空。在 IIS 7+(IIS 7、8.5、8.0、8.5、IIS 10.0)上,使用重写出站规则从 Server: 标头响应中删除 Web 服务器版本信息。

您可以使用以下 URL 重写出站规则:

<rewrite>    
  <outboundRules rewriteBeforeCache="true">
    <rule name="Remove Server header">
      <match serverVariable="RESPONSE_Server" pattern=".+" />
      <action type="Rewrite" value="" />
    </rule>
  </outboundRules>
</rewrite>

在此处输入图像描述


推荐阅读