欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

CSRF 防御演进:从 Token 到 SameSite Cookie

发表于:|最后更新:|分类:安全与运维|阅读:6313 次
本文标签:Web安全CSRFCookie

跨站请求伪造(CSRF)利用浏览器自动携带 Cookie 的特性,诱导已登录用户在不知情下发起敏感操作。

一、传统 Token 防御

html
<form method="POST" action="/transfer">
  <input type="hidden" name="csrf_token" value="{{ token }}">
</form>

服务端为每个会话生成随机 Token,嵌入表单并在提交时校验。攻击者无法读取跨域页面的 Token,从而无法构造合法请求。

http
Set-Cookie: session=abc123; HttpOnly; Secure; SameSite=Lax
  • Strict:完全禁止跨站携带
  • Lax:顶层导航的 GET 请求允许携带,POST 跨站禁止
  • None; Secure:允许跨站但必须 HTTPS

现代浏览器默认 Lax,已能阻断绝大多数 CSRF 场景。建议 Token 与 SameSite 双重防护,并对敏感操作增加二次验证。