Skip to content

fix(pds): address review suggestions on direct upload security and li… - #3

Merged
zymooll merged 1 commit into
mainfrom
fix/pds-driver-review
Sep 3, 2026
Merged

fix(pds): address review suggestions on direct upload security and li…#3
zymooll merged 1 commit into
mainfrom
fix/pds-driver-review

Conversation

@zymooll

@zymooll zymooll commented Sep 3, 2026

Copy link
Copy Markdown
Owner

No description provided.

Copilot AI lite review requested due to automatic review settings September 3, 2026 09:40

This comment was marked as low quality.

@KawakazeNotFound

Copy link
Copy Markdown
Collaborator

安全审计结果

静态审查 f86e073b 相对 main 的变更后,建议暂缓合并:

P2:密钥格式变更导致进行中的上传令牌失效

drivers/pds/upload.go:246-258 将签名密钥从 baseSecret 改为 baseSecret:DomainID:DriveID,但验证端没有兼容旧密钥。部署或回滚期间,已有的 2 小时有效令牌会全部验证失败,导致上传完成失败,并可能留下 PDS 端未完成文件。建议使用版本化密钥,并在令牌 TTL 内兼容旧、新签名格式。

P2:新增日志存在日志注入风险

server/handles/direct_upload.go:171-181file_nametool 及错误内容直接使用 %s/%v 写入日志。checkRelativePath 未过滤 CR/LF 和其他控制字符,攻击者可构造文件名伪造日志记录,影响审计及日志解析。建议使用结构化日志,或先清理控制字符;同时避免完整记录远端错误响应。

P2:上传令牌仍可重放,且未绑定用户/会话

drivers/pds/upload.go:161-180 只校验存储、父目录和文件名,没有 nonce、已使用状态或用户绑定。令牌及上传 URL 泄露后,同一目录拥有写权限的其他用户可以完成该上传;重复请求也会持续触发 PDS completion API。建议加入用户/会话绑定和一次性消费机制。

P2:初始化接口缺少限流与失败清理

直接上传信息接口会先调用 PDS 创建文件和上传会话,再生成令牌;当前流程缺少对应限流、大小上限及过期会话清理。拥有写权限的用户可以批量创建未完成会话,可能消耗远端对象、配额或 API 资源。建议增加限流、abort/GC 和文件大小限制。

正向修复:已增加文件名校验、强制过期时间校验、跨挂载点拦截,以及 5 分钟 hook 超时。

另外,当前 diff 末尾存在多余空行;本次未执行测试,仅基于静态审查。

@zymooll
zymooll merged commit fde51fc into main Sep 3, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants