存储“记住我”cookie 和 CSRF 保护
Posted
技术标签:
【中文标题】存储“记住我”cookie 和 CSRF 保护【英文标题】:Storing "remember me" cookie and CSRF protection 【发布时间】:2016-09-27 20:37:21 【问题描述】:我一直在读到“记住我”cookie 存储在“httpOnly”cookie 中,因此 javascript/XSS 无法访问它们。但是,“httpOnly”cookie 容易受到 CSRF 攻击,因为它们是随请求自动发送的。
为了缓解 CSRF 攻击,建议使用同步令牌模式(让服务器生成 csrf 令牌并与客户端交叉检查)。
我的问题是,如果“记住我”cookie 可用,CSRF 攻击(恶意 JavaScript)是否有可能发出请求并随后获取从服务器生成的 csrf 令牌?问题是,如果攻击具有 cookie 以及随请求发送的令牌,那么应用程序的安全性就会受到损害。 如果这确实是可能的,我们如何防止这种情况发生?
【问题讨论】:
【参考方案1】:不,由于Same Origin Policy,其他域无法读取令牌。
如果请求是在服务器端绕过 SOP 的,那么服务器不会从受害者的浏览上下文中获取令牌,因此这不能攻击登录用户(服务器只能攻击他们自己使用的用户获取令牌)。
因此,无需担心(当然,只要您没有启用 CORS)。
【讨论】:
以上是关于存储“记住我”cookie 和 CSRF 保护的主要内容,如果未能解决你的问题,请参考以下文章