ChenChen913 / dsh-security-doctor

已收录

One-click local security checkup button for the DeepSeek Harness (DSH) Web UI: read-only checks (!!js config, third-party plugins, credential file perms, instruction files), severity-graded report, plus AI-usable security-review & secure-development guides. / DSH 安全医生:一键本机安全体检插件

main工具 查看源代码

安装

npx -y @deepseek-ai/dsh plugin --profile web add github:ChenChen913/dsh-security-doctor

此安装命令根据 GitHub 仓库地址生成,是未经验证的安装起点。

README

维护者编写的文档快照。

在 GitHub 查看 ↗
提交版本 868c560同步于 2026年8月18日

dsh-security-doctor · DSH 安全医生

中文 | English

DeepSeek Harness(DSH)Web 界面的一键安全体检插件:侧栏底部「安全体检」按钮,安装后自动体检一次(高危时按钮亮红色角标),单击弹出「液态玻璃」质感分级报告——环形安全评分(0–100)、按严重度排序(高危置顶)、与上次体检的趋势对比、一键生成修复处方单、复制 Markdown / 导出 JSON、路径一键复制、中英双语。全程只读:不执行被检查对象的任何代码,默认零外发,不需要 API Key。界面设计规范存档见 design/

生态现状:awesome-dsh-plugin 官方清单自己写着"装插件等于以你自己的权限运行第三方代码,本清单不是安全审查"。这个插件把"我现在的环境安全吗?"变成一次点击。

检查项

检查说明命中级别
配置中的 !!js 表达式扫描 ~/.dsh 下所有 cordis 补丁/配置文件(已剥离注释,注释里提到不算);!!js 在加载时会被求值执行高危
第三方插件盘点各 profile 依赖盘点,区分官方 @deepseek-ai/* 与外来插件;标记未锁定的 git 引用、携带 prepare/postinstall 的包;自辨身份关注
已装插件出网扫描静态扫描外来插件源码外联地址(https?:///wss?://,已剥注释,排除本机回环),按插件列域名;无可扫描源码的插件单独提示说明/关注
凭据文件权限~/.dsh/.credentials.yaml:POSIX 查组/其他位(0400/0600 合格);Windows 经 icacls 只读查 ACL 账户,Users/Everyone 可读报关注。只看权限,永不读内容关注
工作区指令文件AGENTS.md / CLAUDE.md / .agents/ 等(SHA-256 哈希,跨次比对"新增/变更")说明
外部端点配置yml 配置中的 baseURL 行 + 环境变量 DEEPSEEK_BASE_URL 实际生效值(只显示主机名)说明
核心防护服务与策略ctx.get() 探测装载;读实际策略值,审批策略 never 或预设 danger-full-access 直接升高危关注/高危

报告页脚显示生成版本;「检查更新」按钮仅在你点击时api.github.com 查询最新 Release——这是本插件唯一的显式外发(单次请求、只读版本信息、默认零请求)。

安装与更新

⚠️ 两个必读:① 装完必须重启 dsh web 才生效(运行中的实例不热加载新插件层);② 重启会短暂中断当前对话,先保存再重启。

dsh plugin --profile web add github:ChenChen913/dsh-security-doctor#v0.5.0

#v0.5.0 锁定版本标签(可复现、可回退;npm 发布后可直接 dsh plugin --profile web add dsh-security-doctor)。源码 checkout 运行的 DSH:在 harness 仓库内执行 pnpm dsh plugin --profile web add github:ChenChen913/dsh-security-doctor#v0.5.0,或 node --import tsx/esm apps/cli/src/bin.ts plugin --profile web add github:ChenChen913/dsh-security-doctor#v0.5.0

装没装上一条命令确认(curl 返回 ok:true + 控制台出现 [dsh-security-doctor] client loaded; host self-test: v0.5.0 + 侧栏出现按钮):

curl -H 'x-dsh-security-doctor: 1' http://127.0.0.1:3080/dsh-security-doctor/self-test

更新 / 回退 / 迁移:改依赖里的 tag 为目标版本 → 重装(同上命令)→ 重启 dsh web → 刷新页面,四步缺一不可(宿主代码驻内存、客户端元数据有缓存)。更新前先看 CHANGELOGReleases(每版附 diff 链接与 tag commit SHA)。0.1.x 的未锁版本安装请改为带 #tag 的锁定引用;要绝对不可变可锁 commit SHA:github:ChenChen913/dsh-security-doctor#<Release 页标注的 tag SHA>

数据流三问

问题答案
读什么~/.dsh 配置/依赖清单/凭据文件权限位与 ACL 账户名(内容零读取)、指令文件名与哈希、外来插件源码文本、服务装载与策略值、DEEPSEEK_BASE_URL 主机名
写什么无文件写入;仅浏览器 localStorage(体检历史、指令文件哈希快照)
发什么默认无外发(页面到本机 dsh web 的 GET 路由);唯一例外是手动「检查更新」的一次只读 GitHub 查询

安全承诺

  1. 只读:不执行被检查对象的代码、不改用户文件;唯一外部命令是 Windows 下 icacls <文件> 只读 ACL 查询(固定参数、无 shell、无用户输入拼接)。
  2. 默认零外发:本机 GET 路由要求配对头 x-dsh-security-doctor: 1,防本机其他网页跨站读取报告;除手动检查更新外代码中不存在任何外部域名。
  3. 凭据零接触:只查权限位/ACL,内容不读不传不回显;回显行自动脱敏,测试含"凭据值零泄漏"断言,任何人可复跑。

先用自己发布的检测标准审过自己:自审报告 · 安全政策。零运行时依赖、零安装脚本、零构建(node --check 可验);CI actions 钉 commit SHA,三平台 × Node 22/24 矩阵。验证:node test/smoke.mjs && node test/host.mjs && node test/client.mjs

常见问题

  • 看不到「安全体检」按钮? 装完必须重启 dsh web(见上),看不到按钮 ≠ 装失败。
  • curl 访问 /check//self-test 返回 403? 两路由要求配对头,curl 加 -H 'x-dsh-security-doctor: 1' 即可。
  • 怎么确认跑的是哪个版本? 报告页脚「插件 vX.Y.Z」、self-test 的 version 字段、控制台回显,三处任看一处。

局限(诚实声明)

尽力检测(best-effort),"未见异常"不等于"绝对安全";出网扫描是初筛(混淆编码、运行时拼接的地址检测不到);POSIX 权限位不等于完整 ACL;报告正文当前为中文;按会话/agent 覆盖的策略值不读取;深度审查用《安全检测指南》交给 AI 或等后续版本。

文档索引:CHANGELOG(逐版变更 + 实测矩阵)· 发布清单 · v0.5 修复计划 · 安全检测指南 / 安全开发指南skills/ 下有可安装的 SKILL.md 版本)。

兼容性

插件版本实测 harnessOS备注
v0.5.0DSH 0.1.0-rc.5Windows(源码运行)macOS/Linux 由 CI 矩阵覆盖;Node ≥ 22
v0.2.0 – v0.4.0DSH 0.1.0-rc.5Windows(源码运行)同上
v0.1.0DSH 0.1.0-rc.5Windows(源码运行)同上

许可

MIT

项目文件与信号

以下项目是目录快照中检测到的公开仓库信号。

测试已检测
安全策略已检测
文档已检测

仓库信息

开发语言
JavaScript
许可证
MIT
最新发布
v0.5.0
最后更新
2026年8月18日 15:47

谨慎安装

请检查源代码、权限、生命周期脚本、依赖与网络访问;不受信任的插件应先在隔离环境中测试。