Commit Graph
2 Commits
Author SHA1 Message Date
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