如何从响应头中删除“服务器”

时间:2021-03-26 00:58:25

标签: asp.net-core http-headers web-config response-headers

我有一个 asp .net core web api,它充当其他一些 asp .net core web api 服务的代理。

一切都很好,除了我无法让这个标题停止出现在回复中:

server: Microsoft-IIS/10.0

我在代理和服务项目中将此添加到 web.config

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

它似乎适用于 X-Powered-By,但不适用于 Server

我也尝试添加

  <security>
    <requestFiltering removeServerHeader="true" />
  </security>

现在标题读取

server: Kestrel

有谁知道为什么会这样,以及我如何让它发挥作用?

2 个答案:

答案 0 :(得分:0)

这个适用于 IIS 10。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <security>
            <requestFiltering removeServerHeader="true" />
        </security>
    </system.webServer>
</configuration>

答案 1 :(得分:0)

据我所知,如果您想删除服务器标头 Kestrel,我建议您可以尝试以下方法。

您可以尝试修改 Program.CS 中的 UseKestrel 设置:

   public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                webBuilder.UseKestrel(option => option.AddServerHeader = false);
                
            });

结果:

enter image description here