前言¶
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。