如何在 Asp.Net 核心 2.2.1 Web 应用程序中删除服务器 Header?
How to remove Server Header in Asp.Net Core 2.2.1 Web App?
我正在使用 Asp.Net Core 2.2.1。我正在尝试从响应中删除 server Header。我尝试在 ConfigureKestrel()
中添加 options.AddServerHeader = false;
,但仍然没有成功。请帮助我解决我哪里出错了。
这是我的代码:
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>
Response Image
谢谢,
阿卜杜勒
如果您的应用程序在 Kestrel 上 运行,则使用 options.AddServerHeader = false;
调用 ConfigureKestrel
只会删除服务器 header。当您在 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" />
可以解决问题。此外,您还可以删除自定义 headers,例如 X-Powered-By
,如果您愿意,可以在 httpProtocol
下添加 customHeaders
部分
请确保您已启用请求过滤
希望对您有所帮助。
我们可以使用 URLRewrite 来做到这一点。请注意,这不会一起删除 header,但会删除它的值。
步骤如下:
步骤 1. 安装 URLRewrite。要安装 URLRewrite,请转到以下 link
http://www.iis.net/downloads/microsoft/url-rewrite
第 2 步。打开您要删除服务器的站点 header 并单击 URLRewrite 部分。
步骤 4. 单击“添加”按钮,然后在提供的文本框中输入“RESPONSE_SERVER”。
第5步。现在我们需要创建出站规则。想知道如何创建出站规则,看下面link
http://www.iis.net/learn/extensions/url-rewrite-module/creating-outbound-rules-for-url-rewrite-modul...
请注意,这是一个 website-specific 规则。如果要为所有应用程序创建规则,请在服务器级别创建规则。此外,某些应用程序,尤其是第三方应用程序,可能需要服务器 header,因此您可能需要为这些应用程序删除此规则。
我正在使用 Asp.Net Core 2.2.1。我正在尝试从响应中删除 server Header。我尝试在 ConfigureKestrel()
中添加 options.AddServerHeader = false;
,但仍然没有成功。请帮助我解决我哪里出错了。
这是我的代码:
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>
Response Image
谢谢,
阿卜杜勒
如果您的应用程序在 Kestrel 上 运行,则使用 options.AddServerHeader = false;
调用 ConfigureKestrel
只会删除服务器 header。当您在 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" />
可以解决问题。此外,您还可以删除自定义 headers,例如 X-Powered-By
,如果您愿意,可以在 httpProtocol
customHeaders
部分
请确保您已启用请求过滤
希望对您有所帮助。
我们可以使用 URLRewrite 来做到这一点。请注意,这不会一起删除 header,但会删除它的值。
步骤如下:
步骤 1. 安装 URLRewrite。要安装 URLRewrite,请转到以下 link
http://www.iis.net/downloads/microsoft/url-rewrite
第 2 步。打开您要删除服务器的站点 header 并单击 URLRewrite 部分。
步骤 4. 单击“添加”按钮,然后在提供的文本框中输入“RESPONSE_SERVER”。
第5步。现在我们需要创建出站规则。想知道如何创建出站规则,看下面link
http://www.iis.net/learn/extensions/url-rewrite-module/creating-outbound-rules-for-url-rewrite-modul...
请注意,这是一个 website-specific 规则。如果要为所有应用程序创建规则,请在服务器级别创建规则。此外,某些应用程序,尤其是第三方应用程序,可能需要服务器 header,因此您可能需要为这些应用程序删除此规则。