我正在使用Asp.Net Core 2.2.1。我正在尝试从响应中删除服务器标头。我尝试在options.AddServerHeader = false;
内添加ConfigureKestrel()
,但仍然失败。请协助我解决问题。
这是我的代码:
Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureKestrel((context,options) => {
// Set properties and call methods on options
options.AddServerHeader = false;
});
}
}
Web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- To customize the asp.net core module uncomment and edit the following section.
For more info see https://go.microsoft.com/fwlink/?linkid=838655 -->
<system.webServer>
<security>
<requestFiltering removeServerHeader="true" />
</security>
<handlers>
<remove name="aspNetCore" />
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_HTTPS_PORT" value="44342" />
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
</environmentVariables>
</aspNetCore>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
响应图片
谢谢
阿卜杜勒
答案 0 :(得分:3)
如果您的应用程序在Kestrel上运行,则用ConfigureKestrel
调用options.AddServerHeader = false;
只会删除服务器标头。在IIS / IISExpress上托管应用程序时,需要添加具有以下设置的web.config
:
<configuration>
<system.webServer>
<security>
<requestFiltering removeServerHeader="true" />
</security>
<httpProtocol>
<customHeaders>
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>
此行<requestFiltering removeServerHeader="true" />
可以解决问题。此外,如果愿意,还可以通过在X-Powered-By
下添加customHeaders
部分来删除自定义标头,例如httpProtocol
请确保您已启用请求过滤
我希望这会有所帮助。
答案 1 :(得分:1)
我们可以使用URLRewrite做到这一点。请注意,这不会一起删除标头,但会删除标头的值。
以下是步骤:
步骤1.安装URLRewrite。要安装URLRewrite,请转到以下链接
http://www.iis.net/downloads/microsoft/url-rewrite
步骤2。打开要删除服务器标头的站点,然后单击URLRewrite部分。
第4步。单击“添加”按钮,然后在提供的文本框中输入“ RESPONSE_SERVER”。
第5步。现在我们需要创建一个出站规则。要了解如何创建出站规则,请查看以下链接
http://www.iis.net/learn/extensions/url-rewrite-module/creating-outbound-rules-for-url-rewrite-modul ...
请注意,这是网站特定的规则。如果要为所有应用程序创建规则,请在服务器级别创建规则。另外,某些应用程序,尤其是第三方应用程序,可能需要Server标头,因此您可能需要为这些应用程序删除此规则。