用途:防御跨站请求伪造(CSRF)攻击,通过多层防护保护 Web 表单及状态变更请求(POST、PUT、DELETE)。
主要能力:提供三种防护方法——同步令牌(隐藏表单字段,服务端校验)、双重提交(Cookie 与请求头必须匹配)、SameSite Cookie(浏览器阻止跨源请求)。资料给出 Express 下的令牌生成与校验中间件示例,使用 crypto.randomBytes 生成令牌,并用 crypto.timingSafeEqual 做常量时间比较;同时给出 SameSite Cookie 配置示例(httpOnly、secure、sameSite 为 strict 或 lax)以及 HTML 表单隐藏字段集成方式。
使用方式:在服务端会话中生成并保存 CSRF 令牌,渲染表单时写入隐藏字段 _csrf,提交时从请求体或 x-csrf-token 请求头读取并校验;对敏感 Cookie 设置 SameSite=Strict。资料还提到 references/python-react.md 包含 Flask-WTF 完整配置、React 令牌管理钩子及双重提交 Cookie 模式。
最佳实践与限制:对所有状态变更请求应用防护;校验 Origin/Referer 请求头;不要用 GET 执行修改;实现令牌过期(典型 1 小时);组合多层防御。常见错误包括误以为认证可防 CSRF、跨会话复用令牌、将令牌存入 localStorage、缺少令牌过期。具体平台支持与完整实现细节以资料为准,其余内容暂未提供。