安全性
vibe 内置了多项安全特性,用于防止配置文件被未经授权地修改。
vibe 会使用 SHA-256 哈希自动校验 .vibe.toml 和 .vibe.local.toml 文件的完整性。
- 当你运行
vibe trust时,vibe 会计算并保存 SHA-256 哈希 - 当你运行
vibe start时,vibe 会校验文件是否被修改过 - 如果哈希不匹配,vibe 会报错并退出
首次使用: vibe trust → 保存哈希 → 准备就绪
后续使用: vibe start → 校验哈希 → ✓ 匹配 → 运行钩子 → ✗ 不匹配 → 报错(需要重新信任)信任信息保存在 ~/.config/vibe/settings.json 中:
{ "version": 3, "permissions": { "allow": [ { "repoId": { "remoteUrl": "github.com/user/repo", "repoRoot": "/path/to/repo" }, "relativePath": ".vibe.toml", "hashes": ["abc123..."] } ], "deny": [] }}基于仓库的信任
Section titled “基于仓库的信任”版本 3 采用基于仓库的信任标识:
- 信任会在同一仓库的所有 worktree 之间共享
- 首次加载时,设置会自动从 v2 迁移到 v3
跳过哈希检查
Section titled “跳过哈希检查”为所有仓库关闭校验:
{ "version": 3, "skipHashCheck": true, "permissions": { "allow": [], "deny": [] }}仅为某个特定文件关闭校验:
{ "version": 3, "permissions": { "allow": [ { "repoId": { "remoteUrl": "github.com/user/repo", "repoRoot": "/path/to/repo" }, "relativePath": ".vibe.toml", "hashes": ["abc123..."], "skipHashCheck": true } ], "deny": [] }}vibe 会为每个文件保存多个哈希(最多 100 个),因此你可以在分支之间切换而无需重新信任:
- 每个已信任版本的哈希都会被保存
- 切换分支时,vibe 会对照所有已保存的哈希进行检查
- 只要当前哈希与任意一个已保存的哈希匹配,校验即通过
安全注意事项
Section titled “安全注意事项”信任机制只校验配置文件自你信任之后是否被修改过。但请注意以下几点:
- 信任是一种意愿声明:当你运行
vibe trust时,即表示你已经审阅并批准了这些配置文件,包括其中包含的所有钩子命令。 - 钩子会执行任意命令:在
hooks.pre_start、hooks.post_start等中定义的命令会在你的 shell 中执行。vibe 不会对这些命令进行沙箱隔离或限制。 - 信任之前先审阅:在运行
vibe trust之前,请务必审阅.vibe.toml和.vibe.local.toml文件,尤其是在你无法掌控的仓库中。 - 哈希校验不是恶意软件防护:哈希检查只能检测出你已信任文件的变更,并不会评估这些命令本身是否安全。
- 在运行
vibe trust之前务必审阅变更 - 在生产环境中不要跳过哈希检查
- 将
.vibe.local.toml保留在本地 —— 它已被自动加入 gitignore - 在代码评审时审阅团队对
.vibe.toml的变更 - 对不受信任的仓库保持警惕 —— 信任之前请先审阅钩子命令