CSRF

376 字

CSRF

CSRF 的关键不是偷到账号,而是借用用户已经登录的浏览器,让它向目标站点发出用户并不知情的请求。

成立条件

CSRF 通常需要同时满足三件事:用户已经登录目标站点,浏览器会自动携带身份凭据,请求会造成状态变化。比如修改资料、绑定邮箱、发起转账、提交订单、删除内容。

关注点 说明
身份凭据 Cookie 会被浏览器自动带上
请求动作 有写入、修改、删除等副作用
防护缺失 没有 Token、SameSite、Origin 校验

容易混淆的点

CSRF 不依赖读取响应内容,重点是让动作发生。它和 XSS 不同:XSS 是在目标站点执行脚本,CSRF 是跨站发起请求。若站点存在 XSS,CSRF 防护往往也会被削弱,因为脚本可以读取页面中的防护 Token。

防护要点

敏感操作使用不可预测的 CSRF Token,并绑定会话和请求意图。Cookie 设置合适的 SameSite 属性,服务端校验 OriginReferer,关键动作再叠加二次验证、验证码或重新输入密码。

Licensed under CC BY-NC-SA 4.0