feat: captcha C++20 重写 + 安全审计修复 (P0/P1/P2/P3, 10/11 已修复)
captcha2 — C++20 验证码服务(FreeType + stb_image_write): - 完整实现: 图片生成、CaptchaStore、RateLimiter、pymsg RPC 路由 - 协议完全兼容 Python 原版,gateway 零改动 审计修复 (captcha2_SECURITY_AUDIT_20260809.md): - P0-1: 存储答案小写化 (对齐 Python 版语义) - P1-1: gateway 按 IP 限流 10/min + captcha2 全局限流 600/min 兜底 - P2-1: generate_text mt19937 → std::random_device - P2-2: ::tolower UB → unsigned char lambda - P3-1: parse_int 辅助函数, stoi 异常可诊断 - P3-2: 显式 #include <iomanip> - P3-3: 补齐 CAPTCHA_LEN/TTL/RATE_LIMIT 环境变量 - P3-4: LogC 日志超时 5.0→1.0s - P3-5: 限流/满容抛异常, gateway 映射 429/503 - P3-6: 清理死代码 集成: - core/init.txt: captcha → captcha2 - confs configs/captcha.ini: 新增 max_store/rate_limit_per_min - docs: 开发方案、安全审计报告、交叉引用更新
This commit is contained in:
1 parent
29e4f96061
commit
546394b681
15 files changed
+3959
-4
No files matched your search
@@ -100,3 +100,23 @@
|
||||
|
||||
### 中期
|
||||
- [ ] 考虑替换为 Redis 存储支持水平扩展(当前单实例足够)
|
||||
|
||||
---
|
||||
|
||||
## C++20 重写
|
||||
|
||||
2026-08-09,captcha 模块已完成 C++20 重写(`captcha2/`),使用 FreeType + stb_image_write
|
||||
替代 Pillow,协议完全兼容,gateway 零改动。
|
||||
|
||||
- 重写审计报告: [captcha2_SECURITY_AUDIT_20260809.md](captcha2_SECURITY_AUDIT_20260809.md)
|
||||
- 开发方案文档: [../reports/captcha_cpp_rewrite_dev_doc.md](../reports/captcha_cpp_rewrite_dev_doc.md)
|
||||
- `core/init.txt` 已切换为 `captcha2/_run.sh`
|
||||
|
||||
本报告中的遗留问题在 C++ 版中的状态:
|
||||
|
||||
| 原审计项 | C++ 版状态 |
|
||||
|----------|-----------|
|
||||
| P1-1 存储容量上限 | ✅ 继承(max_store=10000) |
|
||||
| P2-1 Redis 水平扩展 | ❌ 未实现(单实例) |
|
||||
| NEW-1 答案非安全随机 | ❌ mt19937(同源问题,C++ 审计 P2-1) |
|
||||
| NEW-2 生成速率限制 | ⚠️ 已实现但为全局桶(C++ 审计 P1-1) |
|
||||
Reference in new issue
Block a user