用途:面向使用 Better Auth(TypeScript 认证框架)的项目,提供安全加固与审查参考,涵盖密钥、限流、CSRF、可信来源、Cookie、会话、OAuth 令牌和审计日志。
主要能力与配置要点: 密钥:按 options.secret、BETTER_AUTH_SECRET、AUTH_SECRET 顺序查找;生产环境拒绝默认占位密钥,短于 32 字符或熵低于 120 位会告警;可用 openssl rand -base64 32 生成,禁止提交到版本控制。 限流:生产默认开启,默认窗口 10 秒、最多 100 次;存储可选 memory、database、secondary-storage(有 Redis 时默认)或 customStorage;敏感端点默认 3 次/10 秒,可用 customRules 覆盖或关闭。 CSRF:多层防护(Origin 校验、Fetch Metadata、首次登录保护),advanced.disableCSRFCheck 默认 false,仅测试或另有机制时关闭。 可信来源:baseURL 自动信任,trustedOrigins 支持通配符、动态函数与环境变量;会校验 callbackURL、redirectTo 等,非法返回 403;生产不要信任 localhost。 会话与 Cookie:expiresIn 默认 7 天、updateAge 默认 24 小时;cookieCache 支持 compact、jwt、jwe;Cookie 默认 secure、sameSite=lax、httpOnly、__Secure- 前缀,可自定义前缀与属性,跨子域需显式开启。 OAuth:所有流程自动 PKCE,state 为 32 字符随机串、10 分钟过期;可设 storeStateStrategy 与 encryptOAuthTokens(AES-256-GCM)。 账户关联:trustedProviders 只能放始终断言邮箱已验证的提供商(如 Google),不要加入 GitHub 或 email-password;无邮件发送能力时优先仅用社交登录。 审计与其它:databaseHooks 可记录会话创建/撤销、邮箱变更、账户关联,before 钩子返回 false 可阻止操作;backgroundTasks 适配 serverless;内置账户枚举防护。
限制:资料未提供具体版本兼容性、性能数据与完整部署步骤,落地前应结合本地安装类型、源码或官方文档核对。