Double Submit Cookie 能怎样防御 CSRF?
了解双重提交令牌、SameSite 和服务端校验的关系,避免把一个普通 Cookie 当成 CSRF 防护。
参考答案
Double Submit Cookie 让服务端把随机令牌写入 Cookie,同时要求客户端把同一令牌放入请求头或请求体;服务端比较两份值。攻击者可以诱导浏览器发送 Cookie,但通常不能读取并复制同源页面中的令牌。
令牌必须不可预测、绑定合适的会话或使用签名防篡改,且服务端要校验请求来源、方法和业务权限。仅设置一个可读 Cookie、只检查存在性,或把令牌放进 URL,都不能构成可靠防护。
SameSite、Origin/Referer 校验和自定义请求头可以形成纵深防御,但不能因为启用了其中一项就忽略服务端鉴权与状态变更保护。