首页 > 解决方案 > 页面源中的 CSRF 令牌

问题描述

如果令牌在页面源中可见(即隐藏的输入字段),这不会破坏目的吗?令牌只能从页面源中获取。也许我想多了,但是 CSRF 令牌不应该只在成功登录时生成吗?

标签: phpcsrf

解决方案


页面中的 CSRF 令牌与与浏览器相关联的 CSRF 令牌(例如通过 cookie 或会话)进行比较。

所以考虑这种攻击:

  1. 攻击者向 Good Site 发出请求并获取 CSRF 令牌
  2. 攻击者将该令牌注入其 Evil™ 站点上的表单中
  3. 受害者访问 Evil™ 站点,页面上的 JS 立即将表单提交给 Good Site
  4. Good Site 将表单数据中的 CSRF 令牌与与受害者浏览器关联的令牌进行比较。它们不匹配,因为攻击者没有从传递给受害者的页面源中获取令牌;他们不得不提出自己的要求。

受害者和良好站点是安全的。


推荐阅读