Asp.net-Core
從 ASP.NET Core 2.1 應用程序中刪除“伺服器”標頭
是否可以刪除ASP.NET Core 2.1 應用程序(在帶有 IIS 10 的 Server 2016 上執行)中的伺服器響應標頭?
我嘗試將以下內容放入 web.config:
<system.webServer> <httpProtocol> <customHeaders> <add name="X-Frame-Options" value="sameorigin" /> <add name="X-XSS-Protection" value="1; mode=block" /> <add name="X-Content-Type-Options" value="nosniff" /> <remove name="X-Powered-By" /> <remove name="Server" /> </customHeaders> </httpProtocol> </system.webServer>對 Response 的前四個更改工作正常,但未刪除**Server標頭。**我仍然看到“紅隼”
Kestrel 伺服器標頭在請求管道中添加得太晚了。因此無法通過 web.config 或中間件刪除它。
您可以通過將AddServerHeader 屬性設置為
falseon來刪除伺服器標頭KestrelServerOptions,這可以在 Program.cs 中完成。public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseKestrel(options => options.AddServerHeader = false) .UseStartup<Startup>();
此解決方案適用於 IIS 10+ 版本,並允許在伺服器響應中刪除
x-powered-by和標頭。server在 IIS 10 中添加了一個新屬性:
removeServerHeader.我們需要
web.config在 asp.net 核心應用程序中創建具有以下內容的文件:<?xml version="1.0" encoding="utf-8"?> <configuration> <system.webServer> <security> <requestFiltering removeServerHeader="true" /> </security> <httpProtocol> <customHeaders> <remove name="X-Powered-By" /> </customHeaders> </httpProtocol> </system.webServer> </configuration>然後在 IIS 上發布應用程序並重新啟動站點。