Files
X-Financial/document/development/2026-07-13/dev-logs/bugs/client-auth-forgery-and-bootstrap-reconfiguration.md
2026-07-13 14:45:36 +08:00

2.0 KiB
Raw Blame History

修复记录

  • 14:43记录 bug 修复:客户端身份头可伪造且已初始化系统仍存在匿名重配置入口。
    • Git 提交检查:已执行 git fetch --all --prune;未发现 upstream 新提交,本地 ahead 1 个提交 661990b2 feat(expenses): add transactional expense case events,它是本任务上一切片的费用事件事务提交,当前认证改造继续建立在该提交之上。
    • 修改:新增 AuthSession 不透明 Bearer 会话和摘要存储,后端从服务端会话及员工表解析身份/角色;移除生产 X-Auth-* 授权来源,保护 Bootstrap、Settings、模型连通性、缓存、员工、分析、Agent、风险观测、审计及日志接口前端统一 Bearer、sessionStorage、集中 401 和原子登出Vite Setup 桥在初始化完成后锁定重配置。
    • 操作:新增 20260713_0002_auth_sessions.py 并只生成 upgrade/downgrade 离线 SQL没有对持久化数据库执行迁移或重启领域回归测试使用仅存在于测试目录的身份依赖覆盖生产代码没有兼容伪造头。测试过程中发现规则初始化用例会重写 5 份 Excel 工件,已停止继续运行该类测试并保持这些文件不进入本次提交。
    • 验证:容器 x-financial-local-linux 内认证/Bootstrap/费用事件/OpenAPI 21 项通过,受保护端点 13 项通过,全量收集 805 项成功;前端 17 项通过,生产构建成功;认证安全核心文件 Ruff 通过,git diff --check 通过,生产源码未检出 X-Auth-*Alembic 离线升级包含 CREATE TABLE auth_sessions,离线降级包含 DROP TABLE auth_sessions
    • 影响:用户登录后必须使用服务端签发的短期 Bearer 会话,伪造用户名、角色或管理员头不再生效;业务经理不能冒充平台管理员,已初始化系统的基础设施信息与重配置入口不再向匿名请求开放。租户级查询守卫、会话清理/全部退出、登录限流和 SSO 仍按 P0 后续任务推进。