如何从 .net core 3.1 api 响应中删除“服务器”标头?

Roh*_*hav 1 .net-core-3.1 asp.net-core-3.1

如何配置 .net core 3.1 应用程序以防止响应标头中出现“服务器”

Son*_*reB 10

如果要删除作为 Server 标头返回的“Kestrel”值,则问题的正确答案是使用 KestrelServerOptions 执行此操作。

虽然可以使用 web.config,但最好不要由运行时添加头开始。

这是在 .NET Core 3.1 中关闭服务器标头的方法,在 Program.cs 的 ConfigureWebHostDefaults 方法中添加 ConfigureKestrel 调用:

webBuilder.ConfigureKestrel(serverOptions =>
{
   serverOptions.AddServerHeader = false;
});
Run Code Online (Sandbox Code Playgroud)

这是一个设置上下文的完整示例,您可以在其中添加它:

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>();
            });
}
Run Code Online (Sandbox Code Playgroud)


Ser*_*.ID 9

在 .Net 6 ASP.Net Core 中

builder.WebHost.ConfigureKestrel(options => options.AddServerHeader = false);
Run Code Online (Sandbox Code Playgroud)


Joe*_*son 6

web.config包含此内容的文件添加到 Web 项目(您可能将其他内容合并到您的web.config文件中):

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering removeServerHeader="true" />
    </security>
  </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

  • 它不会删除我的应用程序中的服务器。 (3认同)

归档时间:

查看次数:

3550 次

最近记录:

6 年,1 月 前