首页 > 解决方案 > 从 ASP.NET Core 2.1 应用程序中删除“服务器”标头

问题描述

是否可以删除ASP.NET Core 2.1 应用程序(在带有 IIS 10 的 Server 2016 上运行)中的服务器响应标头?

我尝试将以下内容放入 web.config:

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <add name="X-Frame-Options" value="sameorigin" />
            <add name="X-XSS-Protection" value="1; mode=block" />
            <add name="X-Content-Type-Options" value="nosniff" />
            <remove name="X-Powered-By" />
            <remove name="Server" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

对 Response 的前四个更改工作正常,但未删除Server标头。我仍然看到“红隼”

标签: asp.net-coreweb-configasp.net-core-2.1kestrel-http-server

解决方案


此解决方案适用于 IIS 10+ 版本,并允许在服务器响应中删除x-powered-by和标头。server

在 IIS 10 中添加了一个新属性:removeServerHeader.

我们需要web.config在 asp.net 核心应用程序中创建具有以下内容的文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
    <httpProtocol>
      <customHeaders>
        <remove name="X-Powered-By" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>
</configuration>

然后在 IIS 上发布应用程序并重新启动站点。


推荐阅读