我在 UAT - 的代码行中发现requireSSL="true"
了不安全服务器(没有 SSL)中的属性
问题。web.config
<httpCookies httpOnlyCookies="true" requireSSL="true" lockItem="true" />
对于 CSRF(跨站点请求伪造)修复,我们使用:
var requestCookie = Request.Cookies[AntiXsrfTokenKey];
我们无法从不安全的服务器读取安全 cookie。因此,对于不安全的服务器,web.config 中的 requireSSL 属性应该为 false。
如果我们让requireSSL="false"
CSRF 修复工作正常,但所有 cookie 都变得不安全,这会产生其他问题[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
。
我们还附加了 CSRF 修复代码,其中页面中的事件PreventCSRF()
正在调用该函数。OnInit(EventArgs e)
Default.aspx.cs
在本地,我们没有 SSL,requireSSL="false"
可以正常使用 CSRF 修复,但不能用于[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
. 所以修复 CSRF 和[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
问题是相互依赖的。
有2个查询-
与 UAT 一样,SSL 在负载平衡器级别进行管理,IIS 盒子中没有安装 SSL 证书。我们可以使用 读取安全 cookie
Request.Cookies[AntiXsrfTokenKey]
吗?如果我们这样做了,
requireSSL="false"
那么 CSRF 修复工作正常,但所有 cookie 变得不安全意味着所有 cookie[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
的问题仍然存在。