跳转到正文
报告库
用途分类 / 内容写作

Obsidian Cli Skill 安全审计

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

Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from

第三方安全检查结论

发现安全风险

已检查文件
1
发现的风险
3
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。发现 1 项风险
中风险

可在 Obsidian 的可信应用上下文中执行 JavaScript

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

Skill 明确允许通过 `obsidian eval` 在应用上下文运行代码。示例本身只统计文件,但该接口并不限于这个只读表达式;具体风险取决于代理之后构造的代码。

为什么需要注意

若执行未经审查或来自不可信内容的代码,它可能利用 Obsidian 应用可访问的对象读取或更改仓库数据,实际能力取决于 Obsidian 对该上下文开放的权限。

这里是有效的开发命令说明,不是警告或否定:它允许在 Obsidian 应用上下文中运行 JavaScript。给出的表达式仅统计文件,不能证明会执行有害操作,但该接口会扩大后续生成代码的权限与影响范围。用户可将 eval 限制为经审阅的只读表达式,并要求任何修改数据的代码另行确认。

SKILL.md:88来自说明文档打开原文件
Run JavaScript in the app context:```bashobsidian eval code="app.vault.getFiles().length"```
查看另外 1 个位置
SKILL.md:106来自说明文档打开原文件
Run `obsidian help` to see additional developer commands including CDP and debugger controls.
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
低风险

命令输出可被复制到系统剪贴板

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

Skill 建议任何命令都可使用 `--copy`。如果该选项用于读取或搜索笔记,输出内容会离开 Obsidian 命令结果并进入共享的系统剪贴板。

为什么需要注意

剪贴板中的笔记内容可能被误粘贴,或被有剪贴板读取能力的本地应用获取。材料是否敏感取决于被复制的命令输出。

该 Skill 明确称任何命令都可用 `--copy` 将输出复制到剪贴板;读取和搜索命令的输出可能包含笔记内容。风险仅在代理实际添加该选项时发生,来源没有要求默认复制,也没有表明内容会经网络发送。用户可禁止对 read、search 等可能含敏感内容的命令使用 `--copy`。

SKILL.md:48来自说明文档打开原文件
```bashobsidian read file="My Note"obsidian create name="New Note" content="# Hello" template="Template" silentobsidian append file="My Note" content="New line"obsidian search query="search term" limit=10obsidian daily:read
查看另外 1 个位置
SKILL.md:60来自说明文档打开原文件
Use `--copy` on any command to copy output to clipboard. Use `silent` to prevent files from opening. Use `total` on list commands to get a count.
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 1 项风险
中风险

省略目标时可能修改错误的笔记或仓库

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

许多命令在未指定 `file` 或 `path` 时使用当前活动文件;未指定仓库时则使用最近获得焦点的仓库。Skill 同时提供追加内容、创建笔记和设置属性等写操作,因此界面焦点变化可能把修改落到非预期位置。

为什么需要注意

可能在错误笔记或错误仓库中追加任务、改写属性或创建文件,导致笔记内容混乱或敏感信息进入不合适的仓库。

该 Skill 明确说明:省略文件目标会使用当前活动文件,省略 vault 目标会使用最近聚焦的 vault;同时又提供 append 和 property:set 等写操作。因此,若代理未显式指定两类目标,焦点变化可能使内容或属性写入非预期笔记。用户可要求每次写入前明确给出 vault 和 path,并先确认解析后的目标。

SKILL.md:32来自说明文档打开原文件
Many commands accept `file` or `path` to target a file. Without either, the active file is used.- `file=<name>` — resolves like a wikilink (name only, no path or extension needed)- `path=<path>` — exact path from vault root, e.g. `folder/note.md`
查看另外 4 个位置
SKILL.md:39来自说明文档打开原文件
Commands target the most recently focused vault by default. Use `vault=<name>` as the first parameter to target a specific vault:```bashobsidian vault="My Vault" search query="test"```
SKILL.md:49来自说明文档打开原文件
obsidian read file="My Note"obsidian create name="New Note" content="# Hello" template="Template" silentobsidian append file="My Note" content="New line"obsidian search query="search term" limit=10obsidian daily:readobsidian daily:append content="- [ ] New task"obsidian property:set name="status" value="done" file="My Note"obsidian tasks daily todo
SKILL.md:50来自说明文档打开原文件
obsidian create name="New Note" content="# Hello" template="Template" silentobsidian append file="My Note" content="New line"obsidian search query="search term" limit=10
SKILL.md:54来自说明文档打开原文件
obsidian daily:append content="- [ ] New task"obsidian property:set name="status" value="done" file="My Note"obsidian tasks daily todo
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。未发现风险
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

6 个说明模块

该 Skill 通过本机 `obsidian` CLI 操作正在运行的 Obsidian,可读取、创建、追加和搜索笔记,并修改属性及任务。

查看原文
SKILL.md:8来自说明文档打开原文件
Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
SKILL.md:48来自说明文档打开原文件
```bashobsidian read file="My Note"obsidian create name="New Note" content="# Hello" template="Template" silentobsidian append file="My Note" content="New line"obsidian search query="search term" limit=10obsidian daily:readobsidian daily:append content="- [ ] New task"obsidian property:set name="status" value="done" file="My Note"obsidian tasks daily todoobsidian tags sort=count counts

它还面向插件和主题开发,能够重新加载插件、读取错误和控制台信息、截图、检查 DOM,并在 Obsidian 应用上下文中运行 JavaScript。

查看原文
SKILL.md:68来自说明文档打开原文件
1. **Reload** the plugin to pick up changes:   ```bash   obsidian plugin:reload id=my-plugin   ```2. **Check for errors** — if errors appear, fix and repeat from step 1:   ```bash   obsidian dev:errors   ```3. **Verify visually** with a screenshot or DOM inspection:   ```bash   obsidian dev:screenshot path=screenshot.png   obsidian dev:dom selector=".workspace-leaf" text   ```
SKILL.md:88来自说明文档打开原文件
Run JavaScript in the app context:```bashobsidian eval code="app.vault.getFiles().length"```
从这里开始 · 工作说明SKILL.md
obsidian-cli
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

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

  • SKILL.md已纳入全文

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

  • SKILL.md工作说明

代码和说明中提到的操作

连接外部网站
SKILL.md:12来自说明文档打开原文件
Run `obsidian help` to see all available commands. This is always up to date. Full docs: https://help.obsidian.md/cli
运行命令
SKILL.md:18来自说明文档打开原文件
```bashobsidian create name="My Note" content="Hello world"
SKILL.md:24来自说明文档打开原文件
```bashobsidian create name="My Note" silent overwrite
SKILL.md:41来自说明文档打开原文件
```bashobsidian vault="My Vault" search query="test"
读取文件
SKILL.md:48来自说明文档打开原文件
```bashobsidian read file="My Note"obsidian create name="New Note" content="# Hello" template="Template" silent
读取了多少行
107
文件校验值(用于核对版本)
5dcc1ad52f592e9146734492ec5181b8c360158e32248d1815e773fcf9cd910e