CSRF
CSRF 的关键不是偷到账号,而是借用用户已经登录的浏览器,让它向目标站点发出用户并不知情的请求。
成立条件
CSRF 通常需要同时满足三件事:用户已经登录目标站点,浏览器会自动携带身份凭据,请求会造成状态变化。比如修改资料、绑定邮箱、发起转账、提交订单、删除内容。
| 关注点 | 说明 |
|---|---|
| 身份凭据 | Cookie 会被浏览器自动带上 |
| 请求动作 | 有写入、修改、删除等副作用 |
| 防护缺失 | 没有 Token、SameSite、Origin 校验 |
容易混淆的点
CSRF 不依赖读取响应内容,重点是让动作发生。它和 XSS 不同:XSS 是在目标站点执行脚本,CSRF 是跨站发起请求。若站点存在 XSS,CSRF 防护往往也会被削弱,因为脚本可以读取页面中的防护 Token。
防护要点
敏感操作使用不可预测的 CSRF Token,并绑定会话和请求意图。Cookie 设置合适的 SameSite 属性,服务端校验 Origin 或 Referer,关键动作再叠加二次验证、验证码或重新输入密码。