我试图从发布到Azure的“纯”web应用程序(即没有MVC)返回的响应中添加/删除某些http头。
我将以下web.config添加到VS2019中的项目中:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff"/>
<add name="X-Frame-Options" value="SAMEORIGIN"/>
<remove name="X-Powered-By"/>
</customHeaders>
</httpProtocol>
</system.webServer>
</configuration>这在我使用IISExpress的开发环境中运行得很好。当应用程序发布到Azure时,它也可以正常工作,因为应用程序服务没有配置为多实例缩放。然而,当应用程序服务被配置为多实例缩放(在我的例子中是三个实例)时,来自应用程序的响应包含“X驱动-通过”和没有“X-内容-类型-选项”或“X-帧-选项”。
发布在我的dev机器上的Out文件夹中创建以下web.config:
<configuration>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff" />
<add name="X-Frame-Options" value="SAMEORIGIN" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath=".\<apname>.exe" stdoutLogEnabled="false" stdoutLogFile="\\?\%home%\LogFiles\stdout" hostingModel="inprocess" />
</system.webServer>
</configuration>我还验证了上面的web.config存在于Azure应用服务的根目录中。
在Azure中的app服务配置中还有什么需要做的吗?
发布于 2021-03-26 02:17:00
测试之后,您不需要进行任何更改。在代码或web.config中,您的解决方案目前是可行的,前提是它部署在基于windows的webapp中。如果它是在linux下部署的,那么web.config文件是无效的。web.config文件仅适用于iis。在linux下,需要使用的配置文件应该是.htaccess。
将web.config放在www.root路径下,后者是项目的根目录.。

基于,部署后效果应与本地iis效果一致。在测试之后,在我部署之后,您可以看到屏幕截图,并且在您的web.config中已经取得了效果。
注:
某些标头不能被删除,但它们可以被覆盖。他们需要在程序中被编码。你还没有参与到这个问题中。
<httpProtocol>
<customHeaders>
<add name="X-Content-Type-Options" value="nosniff" />
<add name="X-Frame-Options" value="SAMEORIGIN" />
<-- replace server vaule -->
<add name="Server" value="N/A" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>

测试步骤:
方法1与web.config


方法2没有web.config (变通方法,也适用于linux)
在Startup.cs中添加下面的代码,它也适用于我。
app.Use(async (context, next) =>
{
context.Response.Headers.Add("X-Content-Type-Options", "nosniff");
context.Response.Headers.Add("X-Frame-Options", "SAMEORIGIN");
context.Response.Headers.Remove("X-Powered-By");
await next.Invoke();
});

https://stackoverflow.com/questions/66806853
复制相似问题