dsh-route-fence-linter:DeepSeek Harness 插件 HTTP 路由安全靜態檢查工具

前言

在 DeepSeek Harness (DSH) 中,webServer 路由通過最長前綴匹配進行分發,優先於 /api 網關的統一信任檢查。這意味着每個插件作者必須自行實現瀏覽器信任圍欄,以防止 DNS 重綁定等攻擊,但大多數插件並未實現。此工具用於靜態掃描插件代碼,找出那些未正確實現圍欄的 HTTP 路由。

核心功能

該插件是一個靜態 linter,用於檢查 DSH 插件的 HTTP 路由安全性:

  • 靜態掃描:針對 webServer 註冊的路由進行靜態分析。
  • Host 固定檢查:確保路由在處理 Origin 或 sec-fetch-site 標誌之前,先固定 Host 頭部爲 loopback 或受信任的權威域名。
  • Fallback 檢查:檢查 registerFallback,防止其作爲未圍欄的攻擊面。
  • 路徑指定:支持掃描特定的配置文件路徑或 Profile 目錄。
  • 引用解析:解析導入和導出,對非相對引用(exports, imports, tsconfig paths)發出警告。

使用方法

安裝爲 DSH 插件後,通過 CLI 命令運行掃描。

基礎掃描

掃描默認的 Web Profile 目錄($DSH_HOME/profiles/web):

dsh-route-fence scan

指定路徑掃描

掃描指定的 Profile 路徑:

dsh-route-fence scan /path/to/profile

退出代碼

  • 0:所有檢查通過(Clean)。
  • 1:至少發現一個 FAIL。
  • 2:用法錯誤或 I/O 錯誤。

判定說明

插件對每個路由輸出 PASS、WARN 或 FAIL 等級。

  • PASS:處理程序在 Origin 處理之前,對 Host 頭部進行了圍欄檢查。
  • WARN:在圍欄內部,Origin 或 sec-fetch-site 在 Host 固定之前被讀取;或者路由定義在掃描包之外,無法讀取圍欄,需人工確認。
  • FAIL:沒有 Host 檢查;圍欄比較 Origin 和 Host 但從未將 Host 固定爲 loopback(可被 DNS 重綁定繞過);或者圍欄存在但該處理程序從未調用。
  • SKIP:無法讀取源代碼的 Bundle,不計入 Clean。

適用場景與注意事項

  • 適用對象:DSH 插件開發者,特別是負責 HTTP API 和 Web 路由構建的開發者。
  • 掃描範圍:僅掃描包發佈的文件(package.json 的 files 字段),未聲明 files 則掃描整個包。
  • 侷限性:
    • 基於啓發式(源文本分析),而非完整的數據流分析。
    • 無法檢查通過包裝(wrapping)或運行時配置安裝的圍欄。
    • 非相對引用(如 package.json exports, imports, tsconfig paths)無法被掃描,結果爲 WARN。
    • 可能報告誤報(False Verdicts),這被視爲 Bug。

結語

該工具幫助開發者快速定位插件中缺失或錯誤的瀏覽器信任圍欄。建議在開發流程中集成此檢查,以消除潛在的安全隱患。更多詳情與源碼,請訪問插件目錄或GitHub 倉庫。

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

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

小夜