如何配置 .net core 3.1 应用程序以防止响应标头中出现“服务器”
问问题
4713 次
3 回答
10
如果要删除作为服务器标头返回的“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>();
});
}
于 2020-04-29T12:46:35.063 回答
7
将包含此内容的文件添加web.config
到 Web 项目(您可能会将其他内容合并到web.config
文件中):
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering removeServerHeader="true" />
</security>
</system.webServer>
</configuration>
于 2019-12-22T18:39:57.800 回答
0
在 .Net 6 ASP.Net 核心
builder.WebHost.ConfigureKestrel(options => options.AddServerHeader = false);
于 2022-02-08T22:36:12.480 回答