gateway 模块安全审计报告
审计日期: 2026-08-01
审计范围: src/main.cpp、src/shared/(libth、libhttp、libcrypt、libsqlite3)
代码版本: dev_qing 分支
修复进度
| 优先级 |
总数 |
已修复 |
待修复 |
| P0 |
1 |
0 |
1 |
| P1 |
5 |
部分 |
3 |
| P2 |
2 |
0 |
2 |
🔴 P0 — 严重问题
P0-1: RSA 私钥存储在仓库中/硬编码
- 位置: Token 签名相关代码
- 问题: RSA 私钥若硬编码在代码中或随仓库分发:
- 所有部署使用同一密钥对,私钥泄露即全局沦陷
- 任何有代码访问权限的人都可伪造 Token
- 修复建议:
- 私钥从文件路径加载(启动参数或环境变量),不硬编码
- 每个部署实例生成独立密钥对
- 私钥文件权限 0600,仅服务运行用户可读
- 公钥分发机制:dnfs、aibox 等需要验签的服务可访问公钥
🟠 P1 — 高危问题
| # |
问题 |
说明 |
| P1-1 |
Token 吊销机制缺失 |
当前无 Token 黑名单/吊销列表,修改密码/注销后旧 Token 仍然有效直到过期 |
| P1-2 |
登录失败次数限制需确认实现 |
是否有 IP/账户级别的失败锁定 |
| P1-3 |
上游代理超时配置需验证 |
反向代理超时过短导致大文件上传失败,过长导致 Slowloris |
| P1-4 |
C++ HTTP 解析器缓冲区溢出审计 |
libhttp 库需全面 fuzz 测试 |
| P1-5 |
请求体大小限制需确认 |
是否配置了合理的上限(如 10MB) |
🟡 P2 — 中危问题
| # |
问题 |
| P2-1 |
错误页面可能泄露版本号/堆栈信息 |
| P2-2 |
HTTPS 配置(如使用)需确认 TLS 版本和密码套件安全 |
✅ 已有安全机制
- ✅ PBKDF2 密码哈希: 慢哈希算法防彩虹表,使用唯一盐值
- ✅ RSA Token 签名: Token 使用 RSA 私钥签名,防伪造
- ✅ 反向代理架构: 统一入口,隐藏后端服务拓扑
- ✅ 速率限制: 邮件轰炸多层防护(gateway+smtp 双窗口限流、60秒冷却、失败锁定)
- ✅ 防用户名枚举: 登录失败返回统一消息(需确认实现)
- ✅ WAF 前置防护: Go WAF 处理 SQLi/XSS/CC/协议解析
- ✅ C++ 高性能实现: 避免 Python GIL 瓶颈,抗并发能力强
- ✅ 依赖审计: 使用项目自带的 libcrypt 加密库(PBKDF2、RSA)
修复路线图
立即(24小时)
短期(72小时)
中期