gpt4 book ai didi

c# - 如何使用 requireSSL ="true"修复 CSRF 和 [加密 session (SSL) Cookie 中缺少安全属性] 问题?

转载 作者:太空宇宙 更新时间:2023-11-03 15:50:08 26 4
gpt4 key购买 nike

我发现 requireSSL="true" 有问题不安全服务器(无 SSL)中的属性(property) web.config UAT 中的代码行 - <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个查询-

  1. 与在 UAT 中一样,SSL 在负载平衡器级别进行管理,IIS 框没有安装 SSL 证书。我们可以使用Request.Cookies[AntiXsrfTokenKey]读取安全cookie吗? ?

  2. 如果我们这样做 requireSSL="false"然后 CSRF 修复工作正常但所有 cookie 变得不安全意味着 [Missing Secure Attribute in Encrypted Session (SSL) Cookie]所有 cookie 的问题仍然存在。

最佳答案

这可能不是您问题的答案,但这是我们可以尝试的方法,

要从 CSRF token 中获得最大利益,您可以使用 Request.Headers 传递它。我认为使用 Header 传输 token 是安全的方法。

Default.aspx 的 OnInit 很好,但如果你有任何 httpmodule 之间,你可以尝试 AcquireRequestState() 方法并获取 HttpContext.Current.Request.Headers["CSRFToken"] 并在 session 中保留该 token 的一个副本以验证(可能是你有一些其他的逻辑来验证)

关于c# - 如何使用 requireSSL ="true"修复 CSRF 和 [加密 session (SSL) Cookie 中缺少安全属性] 问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26227793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com