qing
|
9b6aa39b94
|
fix(dnfs2): update_note 成环检测(修复已知限制 L-1)
新增 _is_descendant 祖先走查:改 pid 时从新父节点沿 pid 链逐级向上,
命中自身即拒绝(自引用/移入自身子树均成环,子树不可达);深度上限 64
+ visited 集防存量脏数据死循环,db 错误 fail-closed 抛 500。
README 已知限制 L-1 移入安全修复表。
|
2026-08-13 04:10:35 +08:00 |
|
qing
|
ad5d91c47a
|
docs: 同步文档至当前生产架构(ca:8443 → gateway:8445、C++20 重写版为主、confs 内嵌 core)
- README: 更新架构图/链路/服务表/端口表,static/dnfs/db/captcha/confs 标注遗留
- MODULES/ARCHITECTURE: 事实来源改为 services.yaml,配置链路收敛为仅 gateway.ini
- fsys/dnfs2 README: 架构图改为 ca 验签与纯 CLI 配置
|
2026-08-10 12:31:35 +00:00 |
|
qing
|
01e67648e0
|
dnfs2: 彻底移除 dnfs.ini 依赖,改纯 CLI + ENV + 默认值
- 删除 confs/configs/dnfs.ini
- dnfs2.cpp: 移除 INI 解析器、confs 拉取逻辑、--config/--no-confs 参数
- dnfs2.cpp: 移除 confs_host/confs_port/confs_config_name/no_confs 字段
- dnfs2.cpp: 移除 <map>/<sstream>/<fstream> 未使用头文件
- services.yaml: 移除 --no-confs(不再需要)
- 更新 dnfs2/README.md: 配置说明改为 CLI 参数表
- 更新 README.md / confs/README.md: 移除 dnfs.ini 引用
|
2026-08-10 03:39:10 +08:00 |
|
qing
|
117fc0241e
|
fix(libhttp,dnfs2): HttpClient 新增超时接口,dnfs2 启用配置超时
修复 dnfs2 审计 L-3(P2-N5):
libhttp HttpClient 硬编码 CURLOPT_TIMEOUT=30L/CONNECTTIMEOUT=10L,
dnfs2 的 gateway_timeout/review_timeout 配置加载后从未使用,实际超时恒为 30s。
修复:
- libhttp HttpClient 新增 set_timeout/set_connect_timeout 接口
(默认 30s/10s,向后兼容 gateway/core)
- request_stream_sync 使用成员变量替代硬编码值
- dnfs2 decode_token 设置 gateway_timeout
- dnfs2 review_content 设置 review_timeout
安全评级 A- → A,已知限制 6→5 项。
|
2026-08-08 01:33:57 +08:00 |
|
qing
|
9804838e96
|
feat(dnfs2): C++20 重实现 dnfs,修复全部 P0/P1 + 审计新发现 4 项
dnfs2 基于 libhttp + libmsg + boost::json 重写 Python dnfs,接口完全兼容:
- 4 个路由 (get_notes/add_note/delete_note/update_note) + 特殊节点 (link/js/image/file)
- Token 验签经 gateway /whoami (fail-closed 503)
- AI 内容审核 fail-closed
- AsyncQueue 异步日志 → db2 Logs 表
- 安全响应头 (CSP/X-Frame-Options 等)
修复 dnfs 继承的 6 项 P0/P1:
- P0-4 统一 _call_db() 检查 success 后再访问 data
- P1-6 setMaxBodySize(10MB)
- P1-7 日志客户端复用主配置
- P1-8 update_note pid≠0 校验父节点存在
- P1-9 RpcClient retry_on_refused=true
- P1-11 note_id 显式 as_int64() + 类型校验
审计新发现并修复 4 项:
- P1-N1 stop_watcher detach 改 join,修复 use-after-free (CWE-416)
- P1-N2 main() 添加 curl_global_init,修复多线程首次 curl_easy_init 竞态 (CWE-362)
- P2-N3 delete_note 分离 db 错误(500) 和子节点检查(400)
- P2-N4 threads 上限 256,对齐项目约定
安全评级 A-,6 项已知限制已记录。
|
2026-08-08 01:26:55 +08:00 |
|