同样的一行安装,不同的交易
Homebrew cask 和 DSH 插件都把安装简化成一条命令。这个便利背后藏着审核流程,而两个生态执行的是完全不同的审核。
审核门槛
| 维度 | Homebrew cask | DSH 插件 |
|---|---|---|
| 谁审核 | 具名维护者,需提交 PR | 取决于来源仓库 |
| 审什么 | 下载地址、校验和、安装步骤 | 取决于仓库政策 |
| 下架机制 | 被举报后移除 formula | 取决于仓库审核力度 |
Homebrew 在包管理器里属于偏严格的一类。cask 是声明式的配方,不是任意代码,而且校验和锁定了你实际拿到的文件。这不等于默认安全,但失效路径明显更窄。
插件生态在设计上更开放。插件运行在宿主应用内部,对文件有真实访问权,所以审核门槛应该更高,而不是更低。
更新行为
- Homebrew 的更新是显式的。你主动执行升级,也能看到改了什么。
- 插件更新经常在宿主启动时静默完成,新版本可能在你没注意的情况下就装上了。
- 上个月你信任的那个版本,不一定是现在正在跑的版本。
攻击面
cask 安装的是一个应用。插件运行在你自己已经信任的应用里,因此可能继承它的权限。宿主能读你的项目文件,插件也能。
这是最重要的差别,也是为什么锁定插件版本比锁定 cask 版本更有价值。
安装前该检查什么
- 安装量和这个包存在了多久。
- 源码仓库是否公开、最近是否还在动。
- 谁能推送更新。开放贡献没问题,前提是发布环节有把关。
- 安装路径里有没有任何地方固定了校验和或版本。
常见问题
Homebrew 比插件更安全吗?
审核更严、格式是声明式的,所以失效路径更窄。整体是否更安全取决于你装了什么。
DSH 插件是全权限运行吗?
它以宿主应用的权限运行,通常比人们预期的权限更大。
应该锁定插件版本吗?
应该。静默更新是「你信任的插件变成不信任的插件」最主要的途径,而且你什么都没做。
安装前先看插件质量评分。评分索引在 dshquality.com。