如何配置.net core 3.1应用程序以防止响应头中出现“服务器”
答案 0 :(得分:5)
如果要删除作为服务器标头返回的“ Kestrel”值,那么对该问题的正确答案是使用KestrelServerOptions来完成此操作。
虽然可以使用web.config,但最好不要在运行时添加头文件。
这是关闭.NET Core 3.1中服务器头的方法,在Program.cs中的ConfigureWebHostDefaults方法内添加ConfigureKestrel调用:
webBuilder.ConfigureKestrel(serverOptions =>
{
serverOptions.AddServerHeader = false;
});
下面是一个完整的示例,用于设置可以在其中添加上下文的上下文:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(serverOptions =>
{
serverOptions.AddServerHeader = false;
});
webBuilder.UseStartup<Startup>();
});
}
答案 1 :(得分:0)
将具有以下内容的web.config
文件添加到Web项目中(您可能将其他内容合并到web.config
文件中):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering removeServerHeader="true" />
</security>
</system.webServer>
</configuration>