php - 页面源中的 CSRF 令牌
问题描述
如果令牌在页面源中可见(即隐藏的输入字段),这不会破坏目的吗?令牌只能从页面源中获取。也许我想多了,但是 CSRF 令牌不应该只在成功登录时生成吗?
解决方案
页面中的 CSRF 令牌与与浏览器相关联的 CSRF 令牌(例如通过 cookie 或会话)进行比较。
所以考虑这种攻击:
- 攻击者向 Good Site 发出请求并获取 CSRF 令牌
- 攻击者将该令牌注入其 Evil™ 站点上的表单中
- 受害者访问 Evil™ 站点,页面上的 JS 立即将表单提交给 Good Site
- Good Site 将表单数据中的 CSRF 令牌与与受害者浏览器关联的令牌进行比较。它们不匹配,因为攻击者没有从传递给受害者的页面源中获取令牌;他们不得不提出自己的要求。
受害者和良好站点是安全的。
推荐阅读
- android - 如何在 kotlin 中使用 http 请求将图像上传到服务器?
- r - 在 xgboost 中使用文档术语矩阵
- firebase - Firebase 用户属性 - 如何正确存储列表值?
- vue.js - 如何解决 Vue 生产构建中的 CORS 策略问题?
- opencart-3 - 如何对我在 opencart 3.x 中创建的模块进行扩展?
- rest - 查询参数 AND 和 OR 区分
- c# - 使用 Office 互操作启动 Outlook 的问题
- mysql - 如何在mysql中选择喜欢通配符
- wso2 - WSO2 EI 肥皂信封丢失
- java - 在集群 heroku 环境中,重复键值违反了 JPA 的唯一约束