跨站请求伪造(CSRF)利用浏览器自动携带 Cookie 的特性,诱导已登录用户在不知情下发起敏感操作。
一、传统 Token 防御
html
<form method="POST" action="/transfer">
<input type="hidden" name="csrf_token" value="{{ token }}">
</form>服务端为每个会话生成随机 Token,嵌入表单并在提交时校验。攻击者无法读取跨域页面的 Token,从而无法构造合法请求。
二、SameSite Cookie 属性
http
Set-Cookie: session=abc123; HttpOnly; Secure; SameSite=LaxStrict:完全禁止跨站携带Lax:顶层导航的 GET 请求允许携带,POST 跨站禁止None; Secure:允许跨站但必须 HTTPS
现代浏览器默认 Lax,已能阻断绝大多数 CSRF 场景。建议 Token 与 SameSite 双重防护,并对敏感操作增加二次验证。