Files
ElyOffice/tasks/reviews/C18.2-r2.md
T

8 lines
2.4 KiB
Markdown

FAIL
crates/ely-pdf-engine/src/bin/ely-pdf-worker/main.rs:463 — 失败日志仍将未经内容审核的错误串交给 `scrubbed`;该函数仅遮盖成对引号中的字符,未加引号的数据和字段内的引号都会泄露。具体复现:对独立构建的真实 worker 调用 `change_link`,地址为 `ftp://ana:ZqxPrivate42@files.example/document`,请求被拒绝后,应用日志记录 `only web and mail addresses: ftp://ana:ZqxPrivate42@files.example/document`,包含凭据。正常打开文件的路径也可触发:PDF 的 `/Encrypt /Filter` 为 `/Zqx#27Private42` 时,OPEN 返回 `unknown encryption handler: 'Zqx'Private42'`,日志中的遮盖结果为 `'…'Private42'…`,保留输入文档的字段片段。证据:`/tmp/ely-c18-2-r2/pdf-link-probe.log`、`pdf-encrypt-quote-probe.log`;副本中改为仅记录请求号与失败事件后,两种泄露探针通过,完整错误仍由 ERR 回复交回。修复方向:为失败日志限定经过审核的错误类别及诊断字段,保留现有用户错误通道;增加真实 worker 的无引号敏感字段和内嵌引号回归。
crates/ely-platform/src/diagnostics.rs:105 — 按空白拆词后逐词判定路径,使带空格的文件名尾部进入默认诊断导出,路径移除功能仍泄露路径信息。具体复现:日志含 `opened '/Volumes/ClientSecret/Tax Salary Report.pdf'` 或 Windows 路径 `C:\Clients\Tax Salary Report.pdf`,调用 `bundle(..., Some(&Redact::default()))` 后分别得到 `opened '<path> Salary Report.pdf'` 和 `saved <path> Salary Report.pdf`。补充断言两种路径的文件名都应被移除,实测失败;现有脱敏测试通过。证据:`/tmp/ely-c18-2-r2/redact-probes.log`。修复方向:识别完整路径范围,覆盖引号、空格和 Windows 路径形式,再替换整个路径;为含空格的真实日志及崩溃报告路径加入回归。
crates/ely-platform/src/diagnostics.rs:111 — 姓名过滤条件 `name.chars().count() > 1` 丢弃所有单字姓名,默认开启的个人姓名移除功能原样导出这些名字。具体复现:作者名设为 `李`,使用 `Redact { names: vec!["李".into()] }` 脱敏 `author: 李`,结果仍为 `author: 李`。补充断言实测失败;副本中允许全部非空姓名参与替换后通过。证据:`/tmp/ely-c18-2-r2/redact-probes.log`、`name-repair.log`。修复方向:对全部非空配置姓名执行脱敏,并覆盖单字中文姓名及单字署名。