用途:为 Web 应用实现 CSRF 防护,覆盖表单提交、状态变更、认证系统、支付、账户管理以及任何 POST/PUT/DELETE 请求。
主要能力:使用同步令牌(synchronizer tokens)、双重提交 Cookie(double-submit cookies)、SameSite Cookie 属性和自定义请求头等综合手段;提供令牌生成与按会话创建令牌的示例,包含令牌过期设置(示例为 1 小时)。附带参考指南:Node.js/Express CSRF 防护、双重提交 Cookie 模式、Python Flask CSRF 防护、前端实现、Origin 与 Referer 校验。
使用方式:资料给出最小示例,声明 crypto 与 csurf,定义 CSRFProtection 类,包含 generateToken 与 createToken(sessionId) 方法,使用 this.tokens 与 this.tokenExpiry=3600000。完整实现见 references/ 目录下的参考指南;文中提示“// ... (see reference guides for full implementation)”。
最佳实践:所有状态变更操作使用 CSRF 令牌;Cookie 设置 SameSite=Strict;校验 Origin/Referer 头;使用安全随机令牌;实现令牌过期;仅用 HTTPS;在 AJAX 请求中包含令牌;测试 CSRF 防护。避免:对已认证请求跳过 CSRF;用 GET 做状态变更;仅信任 Origin 头;复用令牌;将令牌存入 localStorage;在未校验情况下允许 CORS 携带凭证。
限制:资料未提供依赖安装命令、完整代码、具体框架配置或测试方法,这些暂未提供。