如何解决如何删除服务器头?
在我的 ASP.Net Core 3.1 应用程序中,我想从响应头中删除服务器头,我在 web 配置中尝试了以下内容
<requestFiltering removeServerHeader="true">
<remove name="Server" />
任何一个选项都不起作用。通常当我在浏览器中看到响应标头时,服务器标头没有看到,但是当我在那里使用 Nmap 时,我可以看到这个“_http-server-header: Microsoft-IIS/10.0”
我不知道需要配置的确切位置。
非常感谢
解决方法
有三种方法可以从响应中删除服务器标头。
1.使用 URLRewrite
-
打开您要删除服务器标头的站点,然后 点击 URLRewrite 部分。
-
点击右侧操作面板中的“查看服务器变量” 手边。
-
点击添加按钮,然后在 提供了文本框。
-
现在我们需要创建一个出站规则如下:
<outboundRules> <rule name="Remove server"> <match serverVariable="RESPONSE_SERVER" pattern=".*" /> <action type="Rewrite" /> </rule> </outboundRules>
2.使用注册表项。
在以下注册表项中创建一个名为 DisableServerHeader 的 DWORD 条目并将值设置为 1。
HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
添加注册表项后,使用 net stop http 命令和 net start http 命令重新启动 HTTP 服务。如果 HTTP 服务没有启动,则使用 iisreset 命令。如果这也不起作用,那么您可以重新启动服务器。
3.使用 URLScan 工具。
打开通常位于 %WINDIR%\System32\Inetsrv\URLscan 文件夹中的 URLScan.ini 文件。打开后,搜索密钥 RemoveServerHeader 。默认情况下它设置为 0,但要删除 Server 标头,请将值更改为 1。
,您可以尝试修改 Program.CS 中的 UseKestrel 设置:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
webBuilder.UseKestrel(option => option.AddServerHeader = false);
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。