标准答案

  1. 当认证凭据自动随跨站请求发送时,攻击者不需要读到响应,也可能让用户浏览器以其登录身份提交转账、改邮箱或绑定操作。
  2. SameSite Cookie 可以减少许多跨站携带场景,但不能替代所有防护;具体效果取决于 SameSite 值、浏览器兼容、顶级导航和业务部署方式。
  3. 常见防护包括 CSRF token、双重提交 Cookie、校验 Origin 或 Referer,以及对敏感写操作要求重新认证或二次确认。
  4. 把访问令牌放在非自动携带的 Authorization Header 中通常降低传统 CSRF 风险,但会引入 XSS 窃取和安全存储问题,不能简单认为更安全。
  5. 无论认证方式如何,服务端都必须验证用户权限、资源归属和请求语义,CSRF 防护只解决跨站伪造这一类风险。

题目解析

CSRF 与 CORS 的方向不同:CORS 约束浏览器脚本能否读取跨源响应,CSRF 防护关注浏览器是否会带着身份执行不该执行的写操作。

只对页面表单防护而漏掉 JSON API、文件上传、账户设置和第三方回调入口,会留下实际攻击路径。

常见误区

  • 认为设置了 CORS 就不需要 CSRF 防护。
  • 把 CSRF token 放在攻击者同样可伪造或自动携带的位置。
  • 因为使用 JWT 就完全不评估 Cookie、XSS 和敏感操作的风险。

作者信息