如何删除服务器头?

问题描述 投票:0回答:2

在我的 ASP.Net Core 3.1 应用程序中,我想从响应标头中删除服务器标头,我在 Web 配置中尝试了以下内容

 <requestFiltering removeServerHeader="true">

<remove name="Server" />

这两个选项都不起作用。通常,当我在浏览器中看到响应标头时,服务器标头看不到,但是当我在那里使用 Nmap 时,我可以看到这个“_http-server-header:Microsoft-IIS/10.0”

我不知道到底需要在哪里配置。

非常感谢

asp.net-core iis-10
2个回答
3
投票

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

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

0
投票

可以通过三种方法从响应中删除服务器标头。

  1. 使用 URLRewrite
  • 打开您想要删除服务器标头的网站,然后 单击 URLRewrite 部分。

  • 单击右侧“操作”窗格中的“查看服务器变量” 手边。

  • 单击“添加”按钮,然后在“RESPONSE_SERVER”中输入“RESPONSE_SERVER” 提供文本框。

  • 现在我们需要创建如下出站规则:

    <outboundRules>
     <rule name="Remove server">
         <match serverVariable="RESPONSE_SERVER" pattern=".*" />
            <action type="Rewrite" />
     </rule>
    </outboundRules>
    
  1. 使用注册表项。

在以下注册表项中创建一个名为“DisableServerHeader”的 DWORD 条目,并将值设置为 1。

HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters

添加注册表项后,使用 net stop http 命令和 net start http 命令重新启动 HTTP 服务。如果 HTTP 服务未启动,请使用 iisreset 命令。如果这也不起作用,那么您可以重新启动服务器。

  1. 使用 URLScan 工具。

打开通常位于 %WINDIR%\System32\Inetsrv\URLscan 文件夹中的 URLScan.ini 文件。打开后,搜索键RemoveServerHeader。默认情况下它设置为 0,但要删除服务器标头,请将值更改为 1。

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