生产级全面审查报告 - 2026-04-03
审查范围: Go 后端 + React/TypeScript 前端 + 架构设计
审查方法: 多智能体深度审查 (并发/安全/前端/架构)
执行摘要
| 维度 |
得分 |
严重问题 |
| 后端安全 |
5/10 |
CRITICAL x2, HIGH x6 |
| 前端安全 |
8/10 |
MEDIUM x1 |
| 并发生命周期 |
8/10 |
LOW x2 |
| 架构设计 |
7/10 |
MEDIUM x2 |
| 综合 |
6.5/10 |
共 27 个问题 |
🔴 CRITICAL 问题 (2个)
1. BootstrapAdmin 端点无认证保护
- 文件:
router.go:116
- 问题:
/auth/bootstrap-admin 仅限流,无认证中间件
- 影响: 攻击者可创建初始管理员账号
2. 错误信息泄露给客户端
- 文件:
auth_handler.go:381
- 问题:
handleError 返回原始 err.Error() 给客户端
- 影响: 数据库错误、文件路径等内部信息泄露
🟠 HIGH 问题 (6个)
3. 主题 CustomCSS/CustomJS 存储型 XSS
- 文件:
theme_handler.go
- 影响: 管理员可注入恶意 JS 到所有用户页面
4. GetUserDevices IDOR 漏洞
- 文件:
device_handler.go:159
- 影响: 任何用户可查询其他用户的设备列表
5. TOTP 恢复码非恒定时间比较
- 文件:
totp.go
- 影响: 时序攻击可逐步暴破恢复码
6. 短信/邮件验证码非恒定时间比较
- 文件:
sms.go:360, email.go:170
- 影响: 时序攻击可逐步暴破验证码
7. 缓存一致性问题 (用户数据变更不清除缓存)
- 文件:
user_service.go
- 影响: 密码修改后 15 分钟内缓存用户信息仍为旧数据
8. Redis 失败时安全路径静默失败
- 影响: 登录计数/令牌黑名单在 Redis 错误时静默失败
🟡 MEDIUM 问题 (12个)
| # |
问题 |
文件 |
| 9 |
CORS 通配符 + AllowCredentials |
cors.go |
| 10 |
OAuth implicit flow token 暴露在 URL |
sso_handler.go |
| 11 |
内存限流可被重启绕过 |
ratelimit.go |
| 12 |
CAS XML 解析用字符串操作 |
cas.go |
| 13 |
SanitizeXSS 自毁式还原 |
validator.go |
| 14 |
桩端点返回 200 而非 501 |
auth_handler.go |
| 15 |
操作日志超时太短 (3s) |
operation_log.go |
| 16 |
StateManager 清理未启动 (死代码) |
state.go |
| 17 |
SSO IntrospectToken 锁升级竞态 |
sso.go |
| 18 |
Webhook 重试任务关闭时丢失 |
webhook.go |
| 19 |
密码策略默认太弱 |
auth.go |
| 20 |
邮箱验证码分布不均匀 |
email.go |
🟢 LOW/INFO 问题 (7个)
| # |
问题 |
严重度 |
| 21 |
密码策略默认太弱 |
LOW |
| 22 |
邮箱验证码非均匀分布 |
LOW |
| 23 |
Regex 未预编译 |
LOW |
| 24 |
RSA 密钥 2048 位 |
LOW |
| 25 |
SSO 内存会话无持久化 |
INFO |
| 26 |
JWT 黑名单 TTL 受限于令牌剩余寿命 |
INFO |
| 27 |
Webhook SSRF DNS 重绑定风险 |
INFO |
✅ 正面安全实践
- Argon2id 密码哈希 - 64MB 内存,5 次迭代
- 参数化查询 - 所有 Repository 使用 GORM 参数化
- LIKE 注入防护 -
escapeLikePattern() 正确使用
- Webhook SSRF 防护 -
isSafeURL() 阻止内网地址
- HMAC 签名 - Webhook 载荷使用 HMAC-SHA256
- RBAC 中间件 - 细粒度权限检查
- 限流 - 内存 + Redis 双限流实现
- 登录异常检测 - 暴力破解/新位置/新设备检测
- 设备信任机制 - 用户可审查和撤销信任设备
- 恢复码 Argon2id 哈希 - 存储前哈希
修复优先级
| 优先级 |
问题 |
工作量 |
| P0 |
BootstrapAdmin 认证 + 错误信息泄露 |
小 |
| P1 |
IDOR + 存储型 XSS + 时序攻击 |
中 |
| P2 |
缓存一致性 + Redis 静默失败 |
中 |
| P3 |
其他 MEDIUM/LOW 问题 |
大 |
验证矩阵