🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

敏感路径审批守卫 TARS-snail/dsh-guard-sensitive-paths

DeepSeek 客户端
TARS-snail46 天前有提交已提供中文文档扫描:未发现敏感能力兼容 / 相关生态

拦截敏感文件读写与命令,执行前先请求你批准

28.5/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/1 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/TARS-snail/dsh-guard-sensitive-paths.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 46 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 拦截敏感路径读写
  • 执行前请求批准
  • 覆盖密钥与配置文件

DeepSeek Harness 审批守卫:write/edit/editor/bash 调用一旦碰到敏感路径(.env、.git、SSH 密钥、.pem)就转为审批询问。

README

由 DeepSeek 最新模型翻译生成
dsh-guard-sensitive-paths 一个 DeepSeek Harness(DSH)插件(bundle):在宿主侧前置注册 tools/pre-execute 策略,把指向敏感路径的 write / edit / str_replace_editor / bash 调用,以及 read 对密钥类文件(SSH 私钥、.pem 证书)的读取,拦截为审批询问(ask)——命中时调用不会直接执行,而是请求用户批准;没有审批通道的自动化按失败关闭。 本插件是纯审批策略:不修改任何会话行为,只把命中敏感目标的调用变成一次审批交换。grep / glob 对同一敏感集合的搜索排除由搜索层(@deepseek-ai/dsh-tool-fs-search)始终开启地完成,与该插件的配置无关。
展开完整文档(README 剩余 1 节)
dsh-guard-sensitive-paths

一个 DeepSeek Harness(DSH)插件(bundle):在宿主侧前置注册 tools/pre-execute 策略,把指向敏感路径的 write / edit / str_replace_editor / bash 调用,以及 read 对密钥类文件(SSH 私钥、.pem 证书)的读取,拦截为审批询问(ask)——命中时调用不会直接执行,而是请求用户批准;没有审批通道的自动化按失败关闭。

本插件是纯审批策略:不修改任何会话行为,只把命中敏感目标的调用变成一次审批交换。grep / glob 对同一敏感集合的搜索排除由搜索层(@deepseek-ai/dsh-tool-fs-search)始终开启地完成,与该插件的配置无关。

保护范围

| 类别 | 匹配规则 | 示例 |
| 环境变量文件 | 路径段以 .env 开头 | .env、.env.local |
| Git 元数据 | 路径段等于 .git | .git/config |
| SSH 私钥 | 文件名为 id_rsa / id_ed25519(可带点号后缀) | id_rsa、id_ed25519.pub |
| 证书 | 文件名以 .pem 结尾 | server.pem |
| SSH 目录 | 路径段等于 .ssh | .ssh/id_ed25519 |

- write / edit 检查 file_path、str_replace_editor 检查 path,统一按路径段匹配(先归一化反斜杠)。
- read 检查 file_path,但只对密钥类文件(SSH 私钥、.pem 证书)触发询问;读取 .env / .git / .ssh/config 等保持放行——把环境文件载入工具属常见合法操作,且这些路径始终被搜索层从 glob/grep 结果中排除。
- bash 对命令文本扫描同一集合:命令里出现 .env、.git(作为独立路径名,覆盖 cp -r .git、tar czf x .git、--git-dir=.git 这类无尾斜杠写法)、id_rsa、id_ed25519、*.pem、.ssh/ 等即触发询问。普通 git 命令(git clone / push / pull / branch / fetch …)因不出现 .git 路径名而不受影响;foo.git、.gitignore、.github、.gitx 也不匹配。
- 其余工具原样放行。

安装

本包符合 DSH bundle 规范:package.json 声明 dsh.bundle.patch,指向随包发布的 cordis.patch.yml(注册 id: sensitive-paths)。dsh plugin 检测到 dsh.bundle 后会自动把它追加进该 profile 的 dsh.profile.bundles 层列表,重启该 profile(如 dsh web)后生效。

从 GitHub 安装

dsh plugin --profile web add github:TARS-snail/dsh-guard-sensitive-paths

从本地目录安装(开发/自用)

dsh plugin --profile web add /path/to/dsh-guard-sensitive-paths

验证

dsh --profile web --dump-config
生效的配置里应能看到 id 为 sensitive-paths 的一行(name: dsh-guard-sensitive-paths)

配置

默认零配置即开启。在 profile 的 cordis.patch.yml(用户层)中按 id 覆盖:

- id: sensitive-paths
name: dsh-guard-sensitive-paths
config:
sensitivePaths: false

| 字段 | 类型 | 默认 | 说明 |
| sensitivePaths | boolean | true | 为 false 时守卫整体关闭:不注册任何监听器,成为空操作 |

工作原理

- 守卫以 PREPEND 方式注册在监听链最前,先于任何权限授予等其它 tools/pre-execute 监听执行;命中敏感目标(含读取密钥材料)即返回 ask 决策,理由为「<tool> targets the sensitive path <target> (<category>); approval is required because it matches the sensitive-path policy」。<category> 取 environment-file、git-metadata、key-material、certificate、ssh-directory,仅用于让审批自解释、便于审计,不改变是否拦截。
- 未命中的调用经 next() 原样委托,不产生任何延迟或副作用。
- 写/改类工具按完整敏感集(.env、.git、.ssh、SSH 私钥、.pem)匹配,read 按密钥子集(SSH 私钥、.pem)匹配,两者共享同一套 basename 规则。
- 导出的 SENSITIVE_PATH_GLOBS 常量与搜索层的排除 globs 互为镜像,两处各自独立实现、互不依赖(守卫匹配用分段规则,搜索层匹配用 glob 排除 + 路径二次过滤)。

威胁模型边界(不覆盖什么)

本插件是工具调用面的路径审批策略,只观察 write / edit / str_replace_editor / read / bash 这些工具的参数。以下都不在其射程内:
- 宿主级 sidecar / 运行时自身的文件与网络行为:读取、打包、加密、上传都不经过工具循环,本插件完全看不到,也不会产生任何 ask。2026-09-18 的智谱 ZCode「静默上传整仓 .git 历史」事件即属此类——其 313MB 归档中 .git 占 86.6%(.git/lfs 56.8%、.git/objects 29.6%、.git/logs 0.2%),打包上传由宿主进程在工具循环之外完成,任何工具面策略都无法拦截。
- 网络出口:文件 sandbox 管文件访问,不管主机进程把数据发往哪里;整仓外传需要出口控制,不是路径正则能解决的。
- 模型推理端点:按设计,任务相关的上下文仍会发送给 LLM provider,与本插件无关。

因此本插件能保证的是「工具调用面上命中的敏感目标一定会先变成一次失败关闭的审批」,不能保证「装了它就不会被偷传」。要覆盖上述面,需要文件 sandbox、进程隔离与网络出口策略。ZCode 事件同时印证了 .git 是最高价值目标,本插件据此把 .git 的 bash 检测从「必须带尾斜杠」修正为「独立路径名」,覆盖 cp -r .git、tar … .git 这类历史外传形态;.git/config 的读取仍按现状放行(其凭据/内网主机名维度的收紧属后续项)。

开发与维护

- src/ 为源(仅类型导入 cordis / dsh-tools;运行时仅依赖 schemastery 的 z,由宿主提供)。
- lib/ 为构建产物(tsc 输出 + 打包入口),随包发布;修改 src/ 后需重新构建并同步 lib/。
- 测试在 tests/sensitive-paths.spec.ts(isSensitivePath 单测 + 真实组合下 pre-execute 返回 ask 的行为测试)。

许可证

MIT
预览分享卡片长什么样 ↓TARS-snail/dsh-guard-sensitive-paths
分享 · DeepSeek Harness Hub
TARS-snail/dsh-guard-sensitive-paths

拦截敏感文件读写与命令,执行前先请求你批准

这是你的仓库?认领条目

回到顶部