前言¶
DeepSeek Harness (DSH) 在執行文件操作時可能意外泄露敏感信息(如 API 密鑰、環境變量)。secret-guard 作爲 DSH 插件,通過在工具執行前攔截敏感文件的讀寫,並在結果層應用內容掩碼,防止密鑰進入對話上下文。
插件簡介¶
名稱:secret-guard
維護者:JohnXu22786
類別:admin-security
許可證:MIT
核心定位:攔截敏感文件(.env、憑據等)的讀寫並掩碼泄露的密鑰。
這是一個零構建插件,加載純 TypeScript 源碼,運行時僅依賴 @deepseek-ai/dsh-tools 和 schemastery。
核心能力¶
- 攔截敏感文件:在工具執行前攔截敏感文件的讀寫(如 .env、憑據),防止泄露。
- 內容掩碼:對工具結果應用內容掩碼作爲後備,防止已泄露內容進入上下文。
- 安全檢查工具:提供
sg_*工具,僅返回元數據(鍵名、行號、指紋等),不返回原始值。 - 審計日誌:記錄 JSONL 格式的審計日誌。
- 規則熱重載:支持規則文件的自動熱重載。
安裝與配置¶
使用官方安裝命令將插件添加到指定 profile:
dsh plugin --profile demo add github:JohnXu22786/secret-guard
移除插件:
dsh plugin --profile demo remove dsh-secret-guard
檢查插件狀態:
dsh --profile web --dump-config | grep -A 6 secret-guard
環境要求¶
- dsh ≥ 0.1.0-rc.6
- Node.js ≥ 22.19 或 ≥ 24
- 運行時依賴:
@deepseek-ai/dsh-tools和schemastery
本地開發¶
本地開發時,需要使用絕對路徑覆蓋插件源碼:
# dev-overlay.yml
- insert:
- id: secret-guard-dev
name: 'file:///D:/path/to/secret-guard/src/index.ts'
config:
maskResults: true
運行命令:
dsh --profile headless --patch D:/path/to/secret-guard/dev-overlay.yml "list the current directory"
注意事項¶
- 源碼限制:源碼必須使用 strip-only 類型移除支持的語法(如不允許使用參數屬性)。
- 路徑解析:相對路徑(如
sealKey.path、audit.dir)解析自 dsh 的啓動工作目錄。 - 匹配規則:匹配不區分大小寫。
總結¶
secret-guard 提供了從攔截到掩碼的完整防禦鏈,適合需要嚴格保密的開發場景。詳細信息請查閱 GitHub。