前言¶
DeepSeek Harness 原生的 web_fetch HTTP provider 默認拒絕所有非公網地址,這是重要的 SSRF 安全邊界。但在以下場景中,目標明明可信,也可能被提前攔截:透明代理(如 Clash、Mihomo)的 Fake-IP 模式把公網域名解析到保留網段;Agent 需要讀取企業內網文檔站、自建知識庫或其他受信任的私有網絡服務。dsh-web-fetch-enhanced 插件允許管理員顯式配置兩層例外,在保持模型側 web_fetch 用法不變的前提下,擴大可控的網絡範圍。
插件簡介¶
該插件由 Yurzi 維護,採用 MIT 許可證。它爲 DeepSeek Harness 提供安全、可控的增強型網頁抓取能力。插件默認拒絕非公網目標,只有明確命中的 CIDR 例外才會放行。
核心功能¶
- 與原生工具完全兼容:不增加新模型工具,Agent 繼續調用
web_fetch。 - 網頁端即時配置:在 DSH Web 設置中編輯白名單,保存後下一次抓取立即生效。
- 雙層白名單機制:
- CIDR 白名單:配置允許的 IPv4 / IPv6 網段。
- 域名白名單(可選):作爲第二因子,將可訪問網段進一步限制到精確域名或通配域名。
- DNS 校驗與連接固定:所有解析結果必須合規,連接只使用已驗證的地址。
- 重定向逐跳複覈:僅跟隨同源重定向,並在每一跳重新解析、校驗和固定地址。
- 受限匿名請求:只發送無 Cookie、無 Authorization、無 URL 憑據的 GET 請求。
- 資源上限控制:限制 URL、響應字節、解碼字符、重定向次數和超時時間。
- IPv4 / IPv6 防護:覆蓋 IPv4-mapped IPv6 與活動 DNS64 / NAT64 目標檢查。
- 全局出站代理協同:無縫對接 DSH 全局 HTTP 代理路由,同時嚴格禁止非公網 IP 字面量越權走代理。
- 動態系統提示詞協同:當配置了非公網白名單時,自動向模型系統提示詞注入顯式授權聲明。
安裝與啓用¶
推薦使用 DSH 的插件管理命令。安裝包會把隨包發佈的 cordis.patch.yml 作爲 Profile patch 層應用:
dsh plugin --profile web add dsh-web-fetch-enhanced
如果 Web Profile 已經在運行,請按你的部署方式重啓對應的 Host 進程,使新插件和 Client face 完成裝載。
配置白名單¶
打開 DSH Web,進入 插件 → dsh-web-fetch-enhanced。詳情頁直接顯示白名單表單。
- 配置 CIDR:在“允許的 CIDR”中每行填寫一個網段。例如 Clash / Mihomo 的常見 Fake-IP 配置:
198.18.0.0/15
- 配置域名(可選):如果希望只有指定網站可以使用上述例外,再填寫“允許的域名”:
api.example.com
*.docs.example.com
- 保存:點擊“保存”,下一次
web_fetch就會使用新規則。無需重啓 Profile。
使用示例¶
- 讀取內網文檔:
讀取 https://wiki.corp.example/guide,並總結部署步驟。 - 配置特定網段:
配置允許的 CIDR 爲 10.20.0.0/16。 - 配置特定網段:
配置允許的 CIDR 爲 198.18.0.0/15。
安全注意事項¶
- 白名單會擴大 Agent 可發起 HTTP 請求的網絡範圍。只放行你理解並信任的最小目標。
- 不要加入
0.0.0.0/0或::/0。 - 不要加入雲元數據地址,例如
169.254.169.254/32。 - 不要加入不必要的整個
10.0.0.0/8、172.16.0.0/12或192.168.0.0/16。 - 不要加入由不可信代理、DNS 或租戶共同控制的網段。
- 即使配置了白名單,Host 仍會重新執行完整的 CIDR、域名、DNS 和 provider 身份校驗。
版本與兼容性¶
- 最低支持的 DSH 版本:
0.2.0-rc.2(支持範圍>=0.2.0-rc.2 <0.3.0-0)。 - 版本支持策略:本插件僅對 DeepSeek Harness 的 RC(Release Candidate)候選發佈版本及後續穩定正式版提供支持。由於 Alpha 或開發快照版本更迭頻繁且缺乏穩定的 API 保證,本插件不再對 Alpha 等非 RC 階段版本進行維護與適配。
結語¶
此插件通過精細化的白名單控制,讓 DeepSeek Harness 在保持安全邊界的同時,能夠處理複雜的代理環境與內網訪問需求。更多細節可參考 GitHub 倉庫。