asp.net 如何在Azure应用程序网关中启用仅对ApplicationGatewayAffinityCORS和ApplicationGatewayAffinity Cookie的HttpOnly?

nbysray5  于 2022-11-19  发布在  .NET
关注(0)|答案(3)|浏览(233)

如何在Azure应用程序网关HTTP设置配置中为ASP.NET Web应用程序响应标头启用对ApplicationGatewayAffinityCORS和ApplicationGatewayAffinity Cookie的HttpOnly?

jdgnovmf

jdgnovmf1#

Microsoft documentationthis answered question看,这似乎还不可能。他们的页面上说:
某些漏洞扫描可能会标记ApplicationGateway关联性Cookie,因为未设置Secure或HttpOnly标记。这些扫描不考虑Cookie中的数据是使用单向哈希生成的。Cookie不包含任何用户信息,仅用于路由。
我希望同样的功能能够清除我的漏洞扫描仪,但似乎还不可能。

2izufjch

2izufjch2#

请尝试以下命令:

Set-Cookie: cookie_name="cookie_value"; HttpOnly

如果您的项目是以.net framework为基础,请考虑将下列程式码加入到您的web.config档案中,以确保您的应用程序所设定的任何Cookie都是HttpOnly

<system.web>
    <httpCookies httpOnlyCookies="true"/>
</system.web>

您也可以手动设置Cookie,如下所示:

HttpContext.Response.Cookies.Append(
    "CookieKey",
    "CookieValue",
    new CookieOptions
    {
        HttpOnly = true
    });
e5nszbig

e5nszbig3#

The answer by Chris直奔主题。它解释了什么是cookie,以及为什么它们的配置是正确的。安全扫描器只是工具,它们并不总是正确的--它们的结果需要解释。目前,解决方案只是忽略警告并保持cookie不变
但是,如果您不需要应用网关上的会话关联性,只需完全关闭cookie。如果您的应用不将会话状态存储在应用服务器上,则不需要它们--它使用共享存储/DB来存储会话状态,它将会话状态存储在客户端(由MAC和可能的时间戳保护),或者它根本没有会话状态。
要关闭会话关联性Cookie,请将Application Gateway resource的properties.backendHttpSettingsCollection.properties.cookieBasedAffinity设置为“Disabled”,例如使用ARM模板、Azure CLI或任何您喜欢的ARM接口。

相关问题