← 返回列表
未验证
带 SSRF 防护与类型校验地下载公共文件到工作区
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/8 · 已提供中文文档
为DeepSeek Harness提供安全的download_files工具,具备SSRF防护和MIME验证。
综合分
29.1
GitHub 分
29.1
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Apoze/dsh-safe-download-files该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-invariants@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-web用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
DeepSeek Harness 的安全文件下载
一个 DeepSeek Harness 插件,暴露一个模型工具:
download_files({
directory?: string,
items: [{ url: string, file_name?: string }]
})
它可以将公共文件安全地下载到当前 DSH 工作区。这是一个非官方社区插件。
安全性
- 仅使用 HTTP(S) GET,不接受模型控制的请求头、Cookie 或凭据。
- 阻止 localhost、私有网络、元数据端点和保留 IP 地址范围。
- 固定已验证的 DNS 结果,并对每次重定向重新验证。
- 检测真实文件类型,并拒绝不匹配或未知的内容。
- 拒绝可执行文件、脚本、压缩包、Office 文件、HTML、SVG 和 WebAssembly。
- 拒绝绝对路径、父目录遍历、不安全名称和逃逸符号链接。
- 先写入临时文件,再以原子方式发布。
- 绝不覆盖已存在的文件。
接受的内容包括光栅图像、PDF、UTF-8 文本/Markdown/CSV/JSON/XML,以及常见的音频/视频格式。
安装
dsh plugin --profile web add "git+https://github.com/Apoze/dsh-safe-download-files.git#main"
这是一个完整的 DSH bundle。安装后重启 DSH:
dsh --profile web --dump-config
dsh web
无需手动添加 Cordis 条目。
限制
| 限制 | 值 |
| --- | ---: |
| 每次调用的文件数 | 100 |
| 并发下载数 | 8 |
| 文件大小 | 25 MB |
| 单次调用总大小 | 250 MB |
| 重定向次数 | 5 |
| 每个文件的超时时间 | 30 秒 |
| 工具超时时间 | 420 秒 |
当同一批次中的其他项失败时,成功的文件仍会保留。
测试
pnpm install --frozen-lockfile
pnpm test
测试套件涵盖 SSRF、DNS 固定、重定向验证、MIME 不匹配、路径遍历、冲突、取消、大小限制和部分失败。
许可证
MIT
HTTP 传输维护
版本 0.1.1 使用编译后的 Apoze dsh-safe-web-fetch 0.1.0-next.1 发布版(源码提交 736e690cccd2d74126455633cd92fd252c35de08),并通过 lockfile 完整性哈希进行固定。其 Undici 8.10.2 修复了 https://github.com/nodejs/undici/issues/5360 中描述的未捕获的暂停解析器 EOF 崩溃。未使用运行时异常抑制或 node_modules 补丁。现有的 DNS 固定、私有地址拒绝、取消和大小限制仍然有效。扫码进群