首页/安全/漏洞与攻击面速查/CSRF Token 实现要点
Web 漏洞原理与防护55 条

CSRF Token 实现要点

CSRF Token 是服务端生成、与用户会话关联的随机值:表单或请求头回传、服务端比对;实现要防预测、防复用,并避免把令牌泄露到 URL 与日志中。

漏洞与攻击面速查安全更新于 2026-10-12

实现要点(伪代码)

实现要点(伪代码)
生成:密码学安全随机(>=16 字节),与会话绑定
下发:表单隐藏域或 meta 标签,前端读取后放自定义头
校验:服务端比对会话中的值,不一致返回 403
轮换:登录成功后重新生成,叠加会话轮换

前端附加请求头示例

前端附加请求头示例
fetch('/api/transfer', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-CSRF-Token': document.querySelector('meta[name=csrf-token]').content,
  },
  body: JSON.stringify(payload),
});
Token 不要放在 URL 查询串:会进入访问日志、Referer 与浏览器历史。

易错点

  • Token 全站复用且长期不变:一旦通过脚本或日志泄露,防护效果大打折扣

数据来源与参考

  • OWASP CSRF Prevention Cheat Sheet(Synchronizer Token Pattern)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌