🔒 安全增强
- 登录暴力破解防护 — 新增基于 IP 的登录失败限制,默认 3 次失败后锁定 1 小时,且可通过参数配置动态调整。
- OTP Secret 加密存储 — TOTP 密钥改为加密存储,降低数据库泄露带来的 MFA 风险。
- PassKey 登录安全 — 无密码登录的 challenge 改为随机 sessionId,避免并发场景下的冲突覆盖。
- 用户登录令牌保护 — 用户表中的登录 token 改为哈希摘要存储,避免明文暴露。
🐛 修复
- CORS 配置收紧 — 生产环境不再使用
allow_origins=["*"],仅在开发模式下放行本地前端地址。 - Inline Import 清理 — 将认证相关模块中的函数内导入移至文件头部,符合项目规范。
- 前端错误提示优化 — 登录与 PassKey 相关错误不再直接展示后端异常细节。
⚡ 优化
- MFA 内存存储防护 — 为临时 challenge 与 MFA pending token 增加容量限制,降低内存膨胀风险。
- 登录失败提示优化 — 登录被锁定时前端可直接展示 429 锁定提示。
🔧 维护
- 限流组件更新 — 同步更新 rate limit 二进制文件及其签名。
- MFA / PassKey 重构 — 完成 MFA 令牌机制与 PassKey 无密码登录流程重构。
- 紧急重置工具 — 新增
reset_mfa.py,支持紧急清空 TOTP / PassKey 配置。 - 清除登录锁定 — 新增 API 端点,管理员可清除指定 IP 或所有 IP 的登录失败锁定。