在我的 ASP.Net Core 3.1 应用程序中,我想从响应标头中删除服务器标头,我在 Web 配置中尝试了以下内容
<requestFiltering removeServerHeader="true">
<remove name="Server" />
这两个选项都不起作用。通常,当我在浏览器中看到响应标头时,服务器标头看不到,但是当我在那里使用 Nmap 时,我可以看到这个“_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);
});
可以通过三种方法从响应中删除服务器标头。
打开您想要删除服务器标头的网站,然后 单击 URLRewrite 部分。
单击右侧“操作”窗格中的“查看服务器变量” 手边。
单击“添加”按钮,然后在“RESPONSE_SERVER”中输入“RESPONSE_SERVER” 提供文本框。
现在我们需要创建如下出站规则:
<outboundRules>
<rule name="Remove server">
<match serverVariable="RESPONSE_SERVER" pattern=".*" />
<action type="Rewrite" />
</rule>
</outboundRules>
在以下注册表项中创建一个名为“DisableServerHeader”的 DWORD 条目,并将值设置为 1。
HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
添加注册表项后,使用 net stop http 命令和 net start http 命令重新启动 HTTP 服务。如果 HTTP 服务未启动,请使用 iisreset 命令。如果这也不起作用,那么您可以重新启动服务器。
打开通常位于 %WINDIR%\System32\Inetsrv\URLscan 文件夹中的 URLScan.ini 文件。打开后,搜索键RemoveServerHeader。默认情况下它设置为 0,但要删除服务器标头,请将值更改为 1。