dsh-safe-web-fetch:DeepSeek Harness 的 SSRF 防護 WebFetch 插件

前言

DeepSeek Harness (DSH) 的核心能力之一是 web_fetch,它允許智能體通過聯網工具獲取外部信息。然而,默認的網絡請求實現可能存在服務器端請求僞造 (SSRF) 風險,且缺乏對請求內容類型的嚴格限制。

dsh-safe-web-fetch 是一個 SSRF-resistant WebFetchProvider 插件。它將 safe-http 註冊爲 DSH 的 ctx.web 服務提供者,在不破壞 DSH 現有工具和 Profile 系統的前提下,提供了一套更嚴格的網絡訪問控制策略。

核心功能

該插件通過以下機制增強安全性:

  • DNS 校驗:在打開 socket 前檢查每個 DNS 答案,包括 IPv4-mapped IPv6 和特殊用途地址範圍。
  • 連接隔離:通過隔離的 Undici dispatcher 進行連接,確保地址檢查與實際請求綁定。
  • 重定向控制:重檢查同源重定向,拒絕跨源重定向。
  • 速率與大小限制:限制響應字節數、解碼字符數、重定向次數、併發請求數以及總超時時間。
  • 內容過濾:僅返回文本類媒體類型(text, HTML, JSON, XML)。
  • 隱私保護:不添加 cookies、authorization headers、瀏覽器狀態或請求體。
  • URL 規則:僅接受 HTTP/HTTPS URL,且 URL 中不包含嵌入的憑證。

安裝與啓用

安裝該插件並激活對應的 Profile 層即可啓用。

  1. 使用 Next 版本安裝:
    dsh plugin --profile safe add dsh-safe-web-fetch@next
安裝後,執行 `dsh --profile safe --dump-config` 查看配置是否生效。
  1. 生產環境部署時,建議固定已測試的版本:
    dsh plugin --profile production add dsh-safe-web-fetch@0.1.0-next.0
  1. 也可以安裝特定 Git 提交:
    dsh plugin --profile safe add github:MostlyHarmlessxyz/dsh-safe-web-fetch#<commit-sha>

配置

插件提供了一系列可配置的參數,默認值較爲保守。

配置項 默認值 最大值
maxUrlLength 2048 16384
maxResponseBytes 5000000 100000000
maxBodyChars 100000 10000000
timeoutMs 30000 Node timer limit
maxRedirects 5 20
maxConcurrentRequests 16 128

此外,還可以配置 allowHosts(允許列表)、denyHosts(拒絕列表)和 userAgent。在 DSH 中,配置行會被完整替換,因此修改配置時需包含所有字段。

- id: safe-web-fetch
  name: dsh-safe-web-fetch
  config:
    maxUrlLength: 4096
    maxResponseBytes: 10000000
    maxBodyChars: 200000
    timeoutMs: 30000
    maxRedirects: 3
    maxConcurrentRequests: 8
    allowHosts:
      - '*.docs.example.com'
    denyHosts: []
    userAgent: my-company-fetch/1.0

適用場景與注意

該插件適合需要在 DSH 環境中執行受限聯網操作的智能體開發場景。

注意點:

  • 內容信任:公共地址不等於可信內容。插件不負責處理提示注入、惡意軟件或 HTML 清理,這些仍需在應用層處理。
  • 系統級限制:操作系統級別的第三方解析器無法被該插件完全阻止,這是一個已知的安全邊界。
  • 功能邊界:該插件不添加 cookies、authorization headers、瀏覽器狀態或請求體。
  • 非網關策略:它不是防火牆、內容掃描器、審批屏幕或代理策略。對於組織級零信任網絡,仍需在網絡邊界部署相應的控制措施。

結語

dsh-safe-web-fetch 通過嚴格的 DNS 校驗、連接隔離和內容過濾,爲 DeepSeek Harness 提供了基礎的 SSRF 防護能力。作爲插件生態的一部分,它遵循 DSH “一切皆插件” 的設計理念,開發者可根據 Profile 需求靈活集成。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜