Commit Graph
36 Commits
Author SHA1 Message Date
qing cfe30a867c docs(core): 将架构总览合入 core README,新增模块 onboarding 文档
- 重写 core/README.md:整合运行模式/CLI、任务池模型(Tttask/HttpTask/
  ConfsTask)、进程托管核心(PPool/ProcessTask/pmc_mtd)、IPC 层(Mq+Pipe)、
  HTTP 管理接口(5200 gateway 验签)、内嵌 confs 等章节;修正已废弃的
  users/extra 目录说明,改为实际文件结构树
- 新增 docs/reports/core_module_overview.md 作为底层逐文件分析记录
2026-08-10 02:17:35 +08:00
qing 59c5fe1feb feat(core): confs2 合并入 core,内嵌 confs 配置服务 v0.1.0
- 新增 ConfsTask(ITask,与 HttpTask 同构):ConfigStore + INI/JSON 取值
  + get/list/reload/health 四路由,协议与 Python confs 逐字节兼容
- 新增 ConfsLogC 异步日志客户端(沿用 confs2 LogC,服务名 confs)
- main.cpp 新增 --confs <port> 选项与 CONFS_* 环境变量;不传则行为不变
- Makefile 链接 -lus_msg,版本 0.0.4 → 0.1.0
- _run.sh 启用 --confs 8010;_set.sh 自建 configs → ../confs/configs 链接
- init.txt 移除 confs2 自启动行(由 core 内嵌承担)
- 黑盒对比测试 16/16 通过(tests/blackbox/test_core_confs.py)
2026-08-09 15:36:32 +00:00
qing 1b282c6f1a feat: confs2 C++20 重写替代 Python confs,时间戳改系统时区
- 新增 confs2/:C++20 重写统一配置服务(libmsg RpcServer)
  - main.cpp: ConfigStore + 4 路由(get/list/reload/health) + INI/JSON 按键取值
  - LogC.hpp: 异步日志客户端(含 P2-3 日志注入防护)
  - 安全机制:TOCTOU 防护、路径遍历防护、扩展名白名单、1MiB 大小限制、缓存防污染
  - 21/21 对比测试全部通过,性能 3x(0.33ms vs 1.01ms),RSS -66%
- confs/confs.py + log_client.py: 时间戳从 timezone.utc 改为系统时区
- confs2/src/main.cpp + LogC.hpp: 同步改为系统时区(localtime + %z)
- core/init.txt: confs/_run.sh → confs2/_run.sh
2026-08-09 14:18:57 +00:00
qing 407ce3c366 feat(ca): 认证独立化 CA 模块 v1.0.0 + gateway v0.9.0 纯转发瘦身
拓扑:waf:443 → ca:8443(认证+前置转发)→ gateway:8445(仅 loopback 纯转发),
WAF upstream 不变,core/dnfs2/前端零改动。

ca v1.0.0(新模块):
- 认证资产逐字搬迁自 gateway v0.8.0(9 条认证路由、Token 双轨吊销、
  PBKDF2、限流、WS 代理鉴权、wrapperHttp、优雅关闭)
- handleForward 前置转发层:固定上游 gateway:8445;无 Target-Url 公开直转,
  有则本地验签后注入 X-Auth-User/X-Auth-Admin/Authorization(strip-then-set)
- is_special_header 新增剥离 x-auth-user/x-auth-admin;上游不可达统一 502
- confs/configs/ca.ini 新增([Upstream] gateway + UPSTREAM_GATEWAY env)

gateway v0.9.0(2470→约 560 行):
- 删除全部认证代码,退居 127.0.0.1:8445
- 启动 loopback 强制自检(非 loopback 拒绝启动)
- X-Auth-User 存在性不变量:显式 Target-Url 无该头一律 401
- gateway.ini 精简至 [Server]/[Proxy]/[Downstream db]

验收:黑盒 34 断言对 8443 原样全绿(32 passed/2 skipped,与基线一致);
探针实测伪造 X-Auth-User 经 CA 被剥离(echo 实证)、直连 8445 无头 401、
白名单外 403、gateway 宕机 CA 502。core/init.txt 加入 ca/_run.sh。
2026-08-09 12:15:35 +00:00
shufeng2012 7342de421b Merge branch 'main' of ssh://git.cancerai.top:2000/qing/blackbird 2026-08-09 18:31:25 +08:00
shufeng2012 ab6e247bc3 🔨 更新core中的_run.sh:添加LD_LIBRARY_PATH的设置 2026-08-09 18:31:22 +08:00
qing 546394b681 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: 开发方案、安全审计报告、交叉引用更新
2026-08-09 04:26:09 +00:00
qing eab58b61f3 更新安装列表和自启动列表 2026-08-08 16:08:48 +08:00
qing f93ae59521 feat: 切换 dnfs 到 dnfs2 启动与安装配置 2026-08-08 13:24:30 +08:00
qing df39e5d006 迁移db到db2 2026-08-07 13:43:55 +08:00
qing 15f8c9552d fix(core,mgmt): list 返回 running+command 字段,命令列不显示为空
原 list 把 check()(命令字符串)放进 status 字段,前端误当状态显示,
命令列取不存在的 command 字段导致显示为空。

修复:list 返回 running(bool) + command(string),前端对应显示状态与命令。
2026-08-04 21:31:21 +08:00
qing 1d7641cc89 fix(core): 纯 HTTP 启动 HTTP 服务(不需要 TLS,符合项目约束)
core 的 HTTP 服务仅供 gateway 内部代理,且 WAF 已在前端终止 TLS。
原代码强制加载 server.crt/server.key,但证书不存在,导致 core 无法启动,
所有请求被 gateway 返回 500 'Internal Server Error'。

修复:使用无 TLS 的 3 参数 HttpServer 构造函数,纯 HTTP 启动。
2026-08-04 21:11:35 +08:00
qing 0700491300 取消注释 2026-08-04 21:02:08 +08:00
qing 34cd295005 feat(core): mgmt 接入 core 进程管理 + 管理员认证
- gateway 新增 POST /admin/verify 验签接口,供内部服务校验管理员 Token
- core 的 /list /exec /kill 接入管理员认证(调用 gateway 验签,fail-closed)
- gateway 代理 opened 白名单加入 core:5200
- mgmt 管理页显示当前用户与角色,进程页接入 core 进程管理接口
2026-08-04 20:00:24 +08:00
qing a7a78d1424 docs: aggregate project documentation under docs/ with unified index
- Move all per-module security audit reports to docs/security/
- Move code review logs to docs/reviews/, analysis reports to docs/reports/
- Add docs/INDEX.md as single entry point for all project documentation
- Add documentation management conventions section to README.md
- Clean up empty per-module docs/ directories
2026-08-03 13:21:48 +08:00
qing 45db2f780b refix core initialize list 2026-08-02 12:56:14 +08:00
qing cebef9fe70 docs: 各模块安全审计报告 + 补充 .gitignore 忽略规则 2026-08-01 05:21:23 +08:00
qing 55fbe2f1f1 feat(confs): 统一配置服务(pymsg/TCP :8010)
- confs.py 重写为统一配置服务:get/list/reload/health 路由,
  内存缓存 + mtime 自动重载,路径遍历防护,ini/json 按键提取
- 复制 log_client.py,新增 configs/example.ini 示例配置
- 注册到 core/init.txt(db 之后启动)与 _inst.sh 安装序列
2026-08-01 02:15:04 +08:00
qing 63a80694ae docs(core): 新增代码审查日志 CODE_REVIEW_LOG_20260730.md
- 审查日期:2026-07-30 14:30:00 (Asia/Shanghai)
- 发现 16 个问题(4 Critical / 6 Medium / 6 Low)
- 核心风险:命令注入、无鉴权、空指针解引用
- 包含分阶段修复计划与优先级建议
2026-07-30 12:01:04 +08:00
qing 3501168f45 inst aibo 2026-07-27 22:03:50 +08:00
qing 40eb522e5b 安全策略 2026-07-27 15:53:09 +08:00
shufeng2012 957981c2c3 🍱 更新脚本 2026-07-26 20:57:04 +08:00
qing 2da504cdc4 自启动脚本的顺序修改,db在最前面 2026-07-25 21:10:51 +08:00
qing 12173b179d jialiao 2026-07-25 17:36:14 +08:00
qing c5fc6f1076 fix up waf and gateway 2026-07-25 01:54:43 +08:00
qing 202f2804b2 增加waf模块 2026-07-25 01:27:08 +08:00
qing fbccc5d909 网友修改版 2026-07-25 00:21:16 +08:00
shufeng2012 468d420746 解决冲突(这啥呀*2) 2026-07-24 15:00:34 +08:00
shufeng2012 80d20f5015 解决冲突(这啥呀) 2026-07-24 14:46:26 +08:00
shufeng2012 dc5dc864c3 OK 2026-07-24 12:43:24 +08:00
shufeng2012 cc08d171c6 refix 2026-07-24 07:05:46 +08:00
qing f8ecd18561 ^-^ 2026-07-23 10:16:41 +08:00
qing d60fe533bd dnfs_3 2026-07-22 10:17:33 +08:00
qing caf2359e5f 增加dnfs后续 2026-07-22 10:15:35 +08:00
qing 396519d0bb 配置微调 2026-07-20 20:19:24 +08:00
qing 70d467d052 init 2026-07-20 11:12:29 +08:00