CSRF利用用户已经登录的浏览器发起非本人意图的操作。防护重点是判断修改请求是否来自合法会话中的正确流程,不能只检查请求里有没有用户编号。
有副作用操作独立保护
修改资料、删除内容和授权等动作不用GET完成。根据应用模式使用CSRF令牌、来源检查等适用措施,后端验证令牌与会话关联及有效性。隐藏字段只是传递方式,不是验证本身。
Cookie策略不是唯一措施
合理使用SameSite、Secure等设置,但跨站业务与不同客户端可能有兼容要求。评估真实部署域名和登录流程,不要从其他项目复制设置后忽略接口失败。
API要看认证方式
依赖浏览器自动携带Cookie的API仍需评估CSRF。显式令牌认证也需要检查令牌存储、跨域和XSS风险;CORS配置不能代替认证与授权。敏感操作必要时重新确认身份或由用户确认。
检查错误和重试路径
测试缺失、错误、过期令牌及跨站请求,确认失败不会仍执行修改。多标签页、会话刷新和表单重试也应保持可用;XSS可能绕过部分CSRF措施,因此要同时修复不安全输出。
参考资料
令牌验证落实到敏感请求
确认令牌与会话绑定,缺失或错误时拒绝写入,服务端不能仅靠按钮隐藏。
Cookie策略与来源检查作为补充,测试跨站请求与过期会话,避免只给表单加字段却不验证。
例如表单有隐藏令牌但接口从不验证,仍不能认为敏感请求受到CSRF保护。