为什么不删除Server和X-Powered-By标头?

问题描述 投票:5回答:4

我的ASP.NET 4.5应用程序正在部署到共享主机,因此我无法访问IIS设置。要删除X-Powered-By标头,我在web.config中指定:

<system.webServer>
  <httpProtocol>
    <customHeaders>
      <remove name="X-Powered-By" />
    </customHeaders>
  </httpProtocol>
</system.webServer>

要删除Server标头,我在Global.asax中指定:

protected void Application_PreSendRequestHeaders(object sender, EventArgs e) {
  HttpContext.Current.Response.Headers.Remove("Server");
}

但是,响应仍包含两个标头:

Cache-Control:private
Content-Encoding:deflate
Content-Length:672
Content-Type:text/html; charset=utf-8
Date:Sun, 06 Jan 2013 00:41:20 GMT
Server:Microsoft-IIS/7.5
X-Powered-By:ARR/2.5
X-Powered-By:ASP.NET

我该如何删除它们?

asp.net iis web-config http-headers global-asax
4个回答
5
投票

我不确定为什么你的X-Powered-By没有被删除,但今年早些时候的Windows Update补丁使得Application_PreSendRequestHeaders修复不再为我们删除Server:标题。

我们必须使用system.webServer在我们的IIS URL Rewrite Module 2块(在Web.config中)添加一个部分:

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

0
投票

如果您使用IIS 7将Global.asax中的DisableMvcResponseHeader属性设置为true,则应删除“X-Powered-By”标题

protected void Application_Start()
{
    MvcHandler.DisableMvcResponseHeader = true;
}

0
投票

主要是服务器IIS不允许我们删除服务器标签。您可以尝试使用以下代码来实现目标。添加Global.asax

protected void Application_PreSendRequestHeaders()
{
    Response.Headers.Remove("X-AspNet-Version");
     HttpContext.Current.Response.Headers.Set("Server", "");
 }

此代码将删除您的“X-AspNet-Version”并将Server值设置为空白。


0
投票

通常通过简单的web.config配置删除X-Powered-By:ASP.NET

<configuration>
  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
...

ARR不受此配置的影响,必须通过IIS管理器,IIS根目录上的编辑器配置(不在站点上)删除:转到system.webServer/proxy节点并将arrResponseHeader设置为false。在IISReset之后,它被考虑在内。 我发现这个here,除了这篇文章是关于旧的IIS 6.0配置的方式。

因此,对于您的情况,如果无法访问IIS设置,则必须要求服务器所有者调整其配置。或者尝试Url Rewrite solution但当然,使用HTTP_X_Powered_By服务器变量。它最多只会删除标题,我还没有检查它是否适用于ARR情况。

© www.soinside.com 2019 - 2024. All rights reserved.