DSH Quality

DSH 插件与 Homebrew Casks:生态系统风险对比

两者都用一条命令装第三方代码,但风险结构差别很大。在继续装东西之前,这个差别值得先搞清楚。

同样的一行安装,不同的交易

Homebrew cask 和 DSH 插件都把安装简化成一条命令。这个便利背后藏着审核流程,而两个生态执行的是完全不同的审核。

审核门槛

维度Homebrew caskDSH 插件
谁审核具名维护者,需提交 PR取决于来源仓库
审什么下载地址、校验和、安装步骤取决于仓库政策
下架机制被举报后移除 formula取决于仓库审核力度

Homebrew 在包管理器里属于偏严格的一类。cask 是声明式的配方,不是任意代码,而且校验和锁定了你实际拿到的文件。这不等于默认安全,但失效路径明显更窄。

插件生态在设计上更开放。插件运行在宿主应用内部,对文件有真实访问权,所以审核门槛应该更高,而不是更低。

更新行为

  • Homebrew 的更新是显式的。你主动执行升级,也能看到改了什么。
  • 插件更新经常在宿主启动时静默完成,新版本可能在你没注意的情况下就装上了。
  • 上个月你信任的那个版本,不一定是现在正在跑的版本。

攻击面

cask 安装的是一个应用。插件运行在你自己已经信任的应用里,因此可能继承它的权限。宿主能读你的项目文件,插件也能。

这是最重要的差别,也是为什么锁定插件版本比锁定 cask 版本更有价值。

安装前该检查什么

  • 安装量和这个包存在了多久。
  • 源码仓库是否公开、最近是否还在动。
  • 谁能推送更新。开放贡献没问题,前提是发布环节有把关。
  • 安装路径里有没有任何地方固定了校验和或版本。

常见问题

Homebrew 比插件更安全吗?

审核更严、格式是声明式的,所以失效路径更窄。整体是否更安全取决于你装了什么。

DSH 插件是全权限运行吗?

它以宿主应用的权限运行,通常比人们预期的权限更大。

应该锁定插件版本吗?

应该。静默更新是「你信任的插件变成不信任的插件」最主要的途径,而且你什么都没做。

安装前先看插件质量评分。评分索引在 dshquality.com。

dsh vs homebrewhomebrew cask riskplugin ecosystem comparisondsh plugin safetydsh plugin vs homebrew caskis homebrew cask safeplugin ecosystem risk comparisonthird party code review bar