我正在尝试从 Azure Web 应用程序(使用 ASP Net core 应用程序)删除响应服务器标头
经过多次尝试改变网络配置并使用中间件删除应用程序代码中的标头,微软不会放弃并将响应标头设置为服务器:Microsoft-IIS/10.0:)
仅当我尝试通过 http(而不是 https)访问服务器时,才会出现此问题。来自服务器的响应代码是 301,这是唯一具有服务器标头的响应。
检查日志,我找不到任何对 http:// 的请求,也许这就是我无法删除标头的原因,因为该请求未在我的应用程序代码中处理。
我正在考虑的一个解决方案是禁用 azure仅 HTTPS并在我的代码中重定向到 https(我测试过并且正在工作 - 服务器标头已删除)
是否有其他解决方法而不禁用仅 HTTPS 选项?
这是我尝试过的
启动.cs
public void Configure(IApplicationBuilder app)
{
app.Use(async (context, next) =>
{
context.Response.Headers.Add("server", string.Empty)
}
app.UseHttpsRedirection();
}
网络配置
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<httpRuntime enableVersionHeader="false" />
<!-- Removes ASP.NET version header. -->
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<remove name="Server" />
<remove name="X-Powered-By" />
</customHeaders>
<redirectHeaders>
<clear />
</redirectHeaders>
</httpProtocol>
<security>
<requestFiltering removeServerHeader="true" />
<!-- Removes Server header in IIS10 or later and also in Azure Web Apps -->
</security>
<rewrite>
<outboundRules>
<rule name="Change Server Header"> <!-- if you're not removing it completely -->
<match serverVariable="RESPONSE_Server" pattern=".+" />
<action type="Rewrite" value="Unknown" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
</configuration>
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)