dsh-secret-vault

DSH PLUGIN安全与权限

仓库 yuloop/dsh-secret-vault

安全与权限 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-secret-vault 是 yuloop 维护的 安全与权限 类 DSH 可安装插件, 仓库为 yuloop/dsh-secret-vault,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-secret-vault 是安全与权限类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类安全与权限 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-28 创建于 2026-10-26
README 6.9 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:yuloop/dsh-secret-vault#v4.4.0
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

安全与权限
字段来自项目仓库与公开索引,中文说明由本站标注

适用场景

存储文件读写记忆

上游标签

dshdsh-pluginlocal-firstprivacysecret-management

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在安全与权限场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-secret-vault当前 L5 · 运行验证通过 低风险 0 未标注 有
dsh-infinite-gen-4 未做沙盒验证 未标注 1,611 未标注 无
cc-safety-net 未做沙盒验证 未标注 1,591 未标注 无
dsh-wallpaper-engine L5 · 运行验证通过 低风险 1,018 0.2.0-rc.2 等 10 个 有
api-relay-audit L5 · 运行验证通过 低风险 875 0.2.0-rc.2 等 10 个 有
hol-guard L4 · 沙盒安装通过 不在扫描口径 828 未标注 有

仓库档案

安全与权限
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方yuloop仓库 dsh-secret-vault · 默认分支 main
分类安全与权限security
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-26 · 2026-10-28最后推送 2026-10-28
本站收录2026-10-30首次进入本站目录的时间

README 全文

6.9 KB
作者原文,中文版优先;只做安全转义,不改内容

中文 | English

dsh-secret-vault

把密钥、API key、身份证、手机号这类东西粘进 DSH 网页的私密面板,让 agent 拿着它干活,却读不到它。
插件把正文落在本机一个随机名文件里,只交给模型一个不透明句柄和一份不含值的摘要;
参数里用路径或命令指向私密目录的调用一律拒绝,其余工具照常可用。

你粘贴 ──► 本机文件(0600,随机名)            ← 正文只存在这里,不进聊天/日志
│
├─► 句柄 + 字段摘要 ──► 模型    (网址、模型名、密钥长度+指纹、PII 类型、内容类型)
└─► 掩码骨架 ──► 分类器         ([[SECRET]] / [[PII]] / [[URL]],定长)

为什么要它

贴在聊天里的密钥是永久的:进会话日志、进发给模型服务商的请求、进这些数据的每一份备份。
这个插件把「交接」从聊天通道里挪出来,于是 agent 能用一把凭据,而明文从未进入它的上下文。

它做什么

  • 本地投放箱:随机 tmp-<32 hex> 文件名,目录 700、文件 600、单份上限 128 KiB;
    每天 04:00 清理已用文件,未用文件 24 小时后过期。
  • 确定性字段抽取(不用模型,< 1 ms):网址、模型名、密钥(长度 + 指纹)、
    PII(大陆身份证走 GB 11643 校验位、银行卡走 Luhn + 发卡行前缀、手机号走号段、
    验证码要求同句关键词、邮箱)、标签、JSON 路径。
  • 内容分类(规则 → TF-IDF 线性模型 → 拒判):provider-config、server-login、
    db-credential、bank-sms、identity、api-keys、mixed、unknown,
    外加 sensitivity、confidence、可审计的 evidence 和一行 advice。
  • 先掩码再分类:分类器只看到 [[SECRET]] / [[PII]] / [[URL]] 占位符
    (定长——带长度的占位符本身就是侧信道)。
  • 守卫(4.5.0 收窄):只拒「参数是路径/命令且指向私密目录」的调用(file_path、command、
    cwd、paths…),read/cat/glob 拿不到字节;date、ls /var/tmp、php -l 这类无关命令
    以及在消息/摘要里提到目录都照常。理由:旧规则把「写报告给别的 agent」「压缩摘要里提路径」
    一起拦了,等于让会话没法反映问题,却挡不住真要绕的人。
  • 出口打码(4.5.0):任何工具的返回进上下文前,sk-/AKIA/ghp_/JWT/Bearer 等高熵凭据
    样式自动替换成「前 4 字符 + 指纹」。防的是 agent 自己 sed/grep 手滑。
  • 宿主机救援命令:secret-vault status | fields | release | purge | cleanup;不需要浏览器,永不打印值。
  • fail-closed 收窄:存储坏掉时只拒「会碰到存储的调用」,不再冻结所有会话的工具。

分类结果只是建议:这里没有任何东西会自动触发动作。把银行短信当成供应商配置去调接口是不可逆的,
所以界面只标标签,由人确认。

安装

DSH bundle,从 Git 安装:

# 在 DSH 插件管理器里添加 bundle spec
git+https://github.com/yuloop/dsh-secret-vault

或者把插件市场索引加进去,它就会出现在「发现」页(设置 → 插件 → 插件市场 → 添加索引 URL):

https://raw.githubusercontent.com/yuloop/dsh-secret-vault/main/marketplace/index.json

用法

  1. 点输入框旁的钥匙图标,粘贴任何东西(一把密钥、一段配置、一条银行短信、句子中间夹着值的杂乱文本)。
  2. 保存。面板显示一行:模型供应商配置 · 敏感:secret · 网址2 · 模型1 · 密钥1。
  3. 直接说要做什么。模型调用 private_local_status 拿句柄、按摘要行事——不需要你把路径粘进聊天。
  4. 用完删除(二次确认),或等每日清理。

暴露给模型的工具

工具 返回
private_local_status mode(local_only/normal)、限制了什么、什么还能用、怎么解除、句柄与 shape(类型/敏感级/依据/建议/计数),不含任何值
private_local_process 六种固定文本变换(copy、trim_edges、normalize_newlines、json_pretty、json_compact、dedupe_lines),返回状态和新句柄
private_local_process + operation:&quot;write_secret&quot; 把值写进目标配置文件的指定键(.env/.ini/.properties/.yml/.toml/.json/.php/.js/.ts),返回 {ok, status, target, keyPath, changed, fingerprint} —— 值不出现在返回里

没有删除工具、没有 shell、没有 HTTP:模型够不到字节,只能在它周围干活。

write_secret 就是「换 API key」这个最典型的用法:

{&quot;reference&quot;: &quot;tmp-&lt;32hex&gt;&quot;, &quot;operation&quot;: &quot;write_secret&quot;,
&quot;target&quot;: &quot;/root/project/config/secrets.local.php&quot;, &quot;key_path&quot;: &quot;AI_API_KEY&quot;, &quot;mode&quot;: &quot;first-secret&quot;}

mode: &quot;whole&quot;(默认)取整个文件去首尾空白;first-secret 取文件里识别到的第一个密钥
(取最紧的跨度,不会把后面的散文一起写进目标文件)。目标文件不存在时按它自己的格式生成初始内容;
已存在时只改匹配到的那一处值,其余字节与权限位原样保留。

宿主机命令

secret-vault status [session]        # 列出条目与锁定状态(只读)
secret-vault fields   [id]           # 字段摘要 + 分类,永不打印值
secret-vault cleanup                 # 立即执行 04:00 的清理
secret-vault purge  --yes   # 删除该会话的文件(不可恢复)

没有软链时等价写法:node bin/secret-vault.mjs …。

安全模型——保证什么、不保证什么

构造上保证:

  • 正文从不经过聊天、附件或 LLM 通道;
  • 私密内容的工具结果只带类型、长度和指纹;
  • 分类器只看掩码骨架,骨架永不落盘;
  • state.json 不含任何值(有测试直接 grep state.json 断言)。

不保证:

  • 操作系统级隔离。DSH 以单一用户运行;其他进程、其他插件、备份、任何 root shell 都能读到文件。
    把私密内容搬进独立低权限进程是后续工作。
  • 蓄意构造的脚本仍可把值带出去;守卫拦的是误操作,不是恶意。
  • 用密钥配置过的东西自己会留一份明文副本(这正是「用起来」的意思)。

开发

npm test                          # 102 个测试:解析、PII 校验、分类、路由、运行时、打码、write_secret
node tools/train-tfidf.mjs        # 重训 144 KB 线性分类器(合成语料)
node tools/eval-classify.mjs      # 门禁:高危错判 0 · 拒判 ≤25% · P99&lt;100ms · macro-F1≥0.85

评测语料是合成的,所以 0.897 的 macro-F1 只能当上限;harness 已经搭好,换成真实样本即可复核。

MIT 许可。

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-secret-vault 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:yuloop/dsh-secret-vault#v4.4.0` 即可。

dsh-secret-vault 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-secret-vault 安全吗?

低风险。

dsh-secret-vault 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-secret-vault 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
安全与权限
按星标排序,可作替代方案

dsh-infinite-gen-4

dsh-infinite-gen-4

DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投

未标注验证等级 1,611 星

cc-safety-net

cc-safety-net

为 DeepSeek Harness 等编码 CLI 提供执行前防护,在工具调用前拦截破坏性 Git 与文件系统命令,并阻止读取 SSH 密

未标注验证等级 1,591 星

dsh-wallpaper-engine

dsh-wallpaper-engine

DSH plugin 将本机 Wallpaper Engine 壁纸变为网页界面背景,支持视频、网页、场景壁纸渲染,并配以 iOS 液态玻璃

L5 · 运行验证通过 1,018 星

api-relay-audit

api-relay-audit

DSH plugin 本地安全审计工具,检测 AI API 中继与 LLM 代理的提示注入、模型替换、工具调用改写、SSE 异常及 Web3

L5 · 运行验证通过 875 星

hol-guard

hol-guard

L4 · 沙盒安装通过 828 星

sandbase-harness

sandbase-harness

SandBase Harness 是本地优先的 AI Agent 运行时,提供沙箱会话、MCP 工具、记忆、凭据管理与审计回放,并内置控制台

L4 · 沙盒安装通过 708 星

yuloop 的其它插件

1 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。