跳转到正文
报告库
用途分类 / 其他用途

Dbs Restore Skill 安全审计

作者说它能做什么(原文)

恢复由 dbs-save 保存的最近诊断状态。用户要求接着上次、查看此前结论或继续未完成诊断时使用。

第三方安全检查结论

先别安装或运行

已检查文件
2
发现的风险
2
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

当前项目无记录时会自动披露其他项目的名称和活动时间

原文依据:2 处
发现了什么

恢复当前项目失败后,该 Skill 不仅报告没有记录,还会扫描同一存档位置的其他项目,并直接列出最近三个项目的名称和日期,无需用户明确要求跨项目查看。

为什么需要注意

客户名、产品代号或私人事项可能出现在项目名中,并被写入当前聊天记录或暴露给正在观看屏幕的人。

当前项目没有存档时,该 Skill 会主动检查同一存档根目录中的其他项目,并展示最近三个项目的名称及活动日期。项目名可能泄露客户、工作或健康主题;如果对话可被旁观、共享或记录,这些信息会超出用户本次仅恢复当前项目的直接请求。披露仅限已配置存档根目录,并非任意磁盘扫描。用户可要求作者先征得同意,或默认只报告“存在其他项目”而不显示名称。

SKILL.md:74来自说明文档打开原文件
**情况 A:当前项目目录不存在或为空**先看 `{存档根目录}/sessions/` 下有没有别的项目。- 如果有别的项目 → 列出最近活跃过的 3 个(按各项目下最新存档的时间戳排序),让用户选:
查看另外 1 个位置
SKILL.md:80来自说明文档打开原文件
```当前位置 `{项目名}` 没有诊断记录。最近你在以下项目里做过诊断:1. dontbesilent-shangye(最近 2026-04-22)2. xiaohongshu-test(最近 2026-04-15)3. paid-course(最近 2026-03-30)输入 `/dbs-restore --slug <名字>` 拉对应项目的记录。```
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
高风险

可修改的存档能够控制后续 Skill 路由并向其注入上下文

原文依据:3 处
发现了什么

项目配置可以把读取位置指向自定义目录;恢复流程会完整读取 Markdown,即使格式异常也尽量使用其中的信息。随后,仅凭用户说“按那个走”,就会信任存档里的 `next_skill` 并把存档内容交给对应 Skill。这里没有要求验证存档来源、限制允许的 Skill,或把存档文字明确当作不可执行数据。

为什么需要注意

如果仓库配置或存档被他人预置、同步篡改或手工修改,攻击者可改变后续调用的 Skill,并将诱导性指令带入其上下文。实际后果取决于目标 Skill 的权限,可能影响用户的文件、账号、凭据或决策。

当存档可被手动修改,或自定义根目录中含有不可信存档时,风险成立。该 Skill 被要求即使格式异常也利用现有内容;用户随后只要表示“按那个走”,存档中的 next_skill 和核心内容就会被交给另一 Skill。用户的确认授权了继续流程,但没有验证 next_skill 是否在允许列表内,也没有要求下游把存档文字仅视为数据,因此恶意内容可能影响工具选择或后续决策。用户可要求作者限制可调用的 Skill、验证存档来源,并在传递前过滤指令性文字。

SKILL.md:46来自说明文档打开原文件
先读取当前工作目录下的 `.dbs/config.json`,并与 dbs-save 使用同一套解析规则:1. 配置文件不存在,或 `mode` 是 `default` → `~/.dbs/`2. `mode` 是 `project` → 当前工作目录下的 `.dbs/`3. `mode` 是 `custom` → `root` 指定的目录;展开开头的 `~`,相对路径按当前工作目录解析配置无法解析、`mode` 不受支持、`root` 为空,或路径指向 `/`、用户家目录、当前项目根目录时,停止恢复并说明配置问题。不要到其他位置猜测,也不要静默退回默认位置。
查看另外 2 个位置
SKILL.md:102来自说明文档打开原文件
### Step 3:读存档文件读完整 markdown,解析 frontmatter 字段。如果文件格式不对(比如 frontmatter 缺字段、被用户手动改过),尽量用现有信息呈现,不要因为格式错误就拒绝展示。
SKILL.md:147来自说明文档打开原文件
**A. 用户说「就接着上次确认的下一步走」/「按那个走」**→ 这时候才路由到 next_skill 字段指的那个 skill。说一句:> 那走 `/{next_skill}`,把上次诊断的状态当输入。然后调用对应 skill。**调用时把存档的核心内容作为上下文喂给那个 skill**——不要让用户再讲一遍。
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

该 Skill 用于读取本地保存的诊断存档并向用户展示上次的结论、否决方向、待验证假设和下一步;它声称自身不执行诊断。

查看原文
SKILL.md:8来自说明文档打开原文件
你是 dbskill 的状态恢复工具。你的工作是:从本地拉出最近一次保存的诊断存档,把状态呈现给用户,让他可以接着上次继续。**你不做诊断,不主动跳到别的 skill。** 你只负责把记忆拿回来。

存档位置可由项目中的 `.dbs/config.json` 决定,包括用户主目录、项目目录或自定义目录;部分过于宽泛的目标路径会被拒绝。

查看原文
SKILL.md:46来自说明文档打开原文件
先读取当前工作目录下的 `.dbs/config.json`,并与 dbs-save 使用同一套解析规则:1. 配置文件不存在,或 `mode` 是 `default` → `~/.dbs/`2. `mode` 是 `project` → 当前工作目录下的 `.dbs/`3. `mode` 是 `custom` → `root` 指定的目录;展开开头的 `~`,相对路径按当前工作目录解析配置无法解析、`mode` 不受支持、`root` 为空,或路径指向 `/`、用户家目录、当前项目根目录时,停止恢复并说明配置问题。不要到其他位置猜测,也不要静默退回默认位置。

如果当前项目没有存档,该 Skill 会检查同一存档根目录中的其他项目,并显示最近三个项目的名称和活动日期。

查看原文
SKILL.md:74来自说明文档打开原文件
**情况 A:当前项目目录不存在或为空**先看 `{存档根目录}/sessions/` 下有没有别的项目。- 如果有别的项目 → 列出最近活跃过的 3 个(按各项目下最新存档的时间戳排序),让用户选:```当前位置 `{项目名}` 没有诊断记录。最近你在以下项目里做过诊断:1. dontbesilent-shangye(最近 2026-04-22)2. xiaohongshu-test(最近 2026-04-15)3. paid-course(最近 2026-03-30)输入 `/dbs-restore --slug <名字>` 拉对应项目的记录。```

在用户确认沿用存档中的下一步后,该 Skill 会依据存档的 `next_skill` 字段选择另一个 Skill,并把存档核心内容传给它。

查看原文
SKILL.md:147来自说明文档打开原文件
**A. 用户说「就接着上次确认的下一步走」/「按那个走」**→ 这时候才路由到 next_skill 字段指的那个 skill。说一句:> 那走 `/{next_skill}`,把上次诊断的状态当输入。然后调用对应 skill。**调用时把存档的核心内容作为上下文喂给那个 skill**——不要让用户再讲一遍。
从这里开始 · 工作说明SKILL.md
dbs-restore
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 1 个章节,可在原文件中查看。
文件与检查记录2 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • agents/openai.yaml已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • agents/openai.yaml配套文件
读取了多少行
211
文件校验值(用于核对版本)
005c124ff8e045aeffd6b1bf8b9cfecbed4c40ff1491292cca7c17bcb7ae7df5