【发布时间】:2021-04-27 10:53:22
【问题描述】:
来自OWASP page:CSRF 攻击有效,因为浏览器请求自动包含所有 cookie,包括会话 cookie。
为了防止这种情况,我们可以使用双重提交 cookie 哈希。
在我找到的一些示例代码中,基本上都找到了这个算法。
受害者访问应用程序:
- 后端:生成登录cookie和与登录相关的哈希字符串 饼干
- 前端:将哈希字符串存储到第二个 cookie 中(例如: CSRF 令牌 cookie)
- 前端(安全):通过登录发送请求 cookie 和 CSRF HTTP 标头,其中标头值被提取 来自 CSRF 令牌 cookie。
攻击者:
- 使用某种社交媒体工程让用户点击恶意链接,该恶意链接使用会话 cookie。
- 攻击者然后窃取此会话 cookie 以作为受害者登录
双重提交 cookie 应该可以防止这种攻击,因为攻击者还需要在 HTTP 标头中提供有效的 CSRF 令牌。
我还是不明白:如果浏览器请求自动包含所有 cookie,这意味着在点击恶意链接时,登录 cookie 和 CSRF-token cookie 也将包括在内,攻击者窃取了它们。
所以攻击者只需要从 CSRF-token cookie 中提取值,并使用他窃取的登录 cookie 和提取值的 CSRF HTTP 标头创建自己的 API 访问?
我错过了什么吗?
谢谢
【问题讨论】: