lili
ec4a02ded2
feat(knowledge): 文本内容安全扫描,打通知识库摄入 scanning 关卡
实现 KnowledgeContentScanService(同步纯文本字符扫描),替换 KnowledgeFileFacade.materialize 恒 scanBlocked 占位:合法文本→scanStatus=passed→放行入 RAG,恶意字符→隔离,扫描异常→fail-closed。
范围:纯文本(txt/md/entry),内容只作检索文本、不渲染,故不做 HTML 消毒。
- L1 硬阻断:非法 UTF-8 / null 字节 / 危险 C0-C1 控制符 / Bidi 覆盖(Trojan Source) / 体量超限
- L2 规整:Unicode NFC + 去零宽 + 统一换行 → 干净内容入库/入 RAG
- L3 软策略:prompt 注入特征仅写 riskSummary 不阻断(误报高,真正防线是 P-A prompt 边界)
- 服务端权威 + fail-closed(对齐 SSOT 契约);特殊字符判定用十六进制码点,避免源码出现字面不可见字符
- MaterializedFile.scanBlocked 加 reasonCode/message;下游 isRagflowAllowed 总开关已就绪,无需改动
设计 spec:docs/agent-specs/2026-06-23-knowledge-content-scan-execution.md
验证:ScanService 9 + Facade 接线 3 + DocumentService 17(无回归) + P-B RetrievalApiImpl 11(无回归) 全绿。端到端真摄入(scan→RAGFlow→检索)验收待 rebuild 重启后补。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 10:28:19 -07:00
..
2026-06-20 05:32:32 -07:00
2026-06-14 04:38:07 -07:00
2026-06-14 04:38:07 -07:00
2026-06-20 05:32:32 -07:00
2026-06-20 05:32:32 -07:00
2026-06-21 04:51:34 -07:00
2026-06-21 04:24:03 -07:00
2026-06-22 13:13:00 -07:00
2026-06-22 23:48:40 -07:00
2026-06-22 08:43:33 -07:00
2026-06-22 08:32:13 -07:00
2026-06-23 01:22:44 -07:00
2026-06-23 10:28:19 -07:00
2026-06-23 00:52:47 -07:00