Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何删除服务器头?_Asp.net Core_Iis 10 - Fatal编程技术网

Asp.net core 如何删除服务器头?

Asp.net core 如何删除服务器头?,asp.net-core,iis-10,Asp.net Core,Iis 10,在我的ASP.NETCore3.1应用程序中,我想从响应头中删除服务器头,我在web配置中尝试了以下操作 两种选择都不起作用。通常,当我在浏览器中看到响应头时,服务器头看不到,但当我在那里使用Nmap时,我可以看到以下内容“\u http-Server-header:Microsoft IIS/10.0” 我没有弄清楚这到底需要配置在哪里 非常感谢您可以尝试修改Program.CS中的UseKestrel设置: public static IHostBuilder CreateHost

在我的ASP.NETCore3.1应用程序中,我想从响应头中删除服务器头,我在web配置中尝试了以下操作

两种选择都不起作用。通常,当我在浏览器中看到响应头时,服务器头看不到,但当我在那里使用Nmap时,我可以看到以下内容“\u http-Server-header:Microsoft IIS/10.0”

我没有弄清楚这到底需要配置在哪里


非常感谢

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

   public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseStartup<Startup>();
                webBuilder.UseKestrel(option => option.AddServerHeader = false);
                
            });
公共静态IHostBuilder CreateHostBuilder(字符串[]args)=>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder=>
{
webBuilder.UseStartup();
webBuilder.UseKestrel(option=>option.AddServerHeader=false);
});

有三种方法可以从响应中删除服务器头

1.使用URL重写

  • 打开要删除其服务器头的站点,然后单击“删除” 单击URL重写部分

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

  • 单击添加按钮,然后在 提供文本框

  • 现在我们需要创建一个出站规则,如下所示:

    <outboundRules>
     <rule name="Remove server">
         <match serverVariable="RESPONSE_SERVER" pattern=".*" />
            <action type="Rewrite" />
     </rule>
    </outboundRules>
    
    添加注册表项后,使用net stop HTTP命令和net start HTTP命令重新启动HTTP服务。如果HTTP服务未启动,则使用iisreset命令。如果这也不起作用,那么您可以重新启动服务器

    3.使用故障诊断仪


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

    我尝试了第一个选项,它会影响浏览器的响应头,但当我通过nmap扫描站点时,仍然可以看到MS httpd IIS 10.0服务器版本。第二个和第三个选项我无法尝试,因为该站点作为应用服务托管在Azure上。这只能由客户端用于“隐藏”ServerHeader,而不是真正的删除。是的,你知道其他方法吗?据我所知,只有三种方法。
    HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters