DSH Quality

从插件 README 里识别危险信号

README 是你将读到的最便宜的安全文档。学会把它当证据来读,并识别那些能把粗心项目与不实项目区分开来的信号。

从插件 README 里识别危险信号,是你做的最便宜的安全审查。把文档当作关于代码的证据,而不是作者的承诺。

README 是证据,不是广告

README 在运行代码前就能读,是最便宜的安全文档。别当营销读。每句关于插件做什么、需要什么、怎么更新,都是背后团队的证据。用心的 README 意味着用心的项目。

权限与网络访问

从它索要的看起。README 列权限或网络端点并解释每项必要,是好信号;只要宽泛权限却只字不提,是缺口。读你文件的插件该说清读哪些、为何。

安装、密钥,与文档漏掉的事

安装段最易露风险习惯。留意几种把正常安装变盲目信任的模式。

  • 把远程脚本直接管道进 shell,即 curl | sh,读之前就跑了代码。
  • 下载没签名、无法核实内容的二进制文件。
  • 完全没提固定版本,你拿到的是服务器今天发来的任何东西。
  • 更新机制以后能在你未审查时拉取新代码。

再读插件如何处理数据与自身代码。几种省略值得注意。

  • 示例鼓励把令牌或环境变量明文塞进配置。
  • 构建步骤在安装时跑任意代码,不只开发时。
  • 文档从不披露遥测或分析。
  • 没写许可证,你不清楚自己对代码的权利。

信号与担忧程度对照表

信号通常意味着什么值得担心的程度
安装用 curl | sh代码读前就运行
没有固定版本收到未审查的更新
未披露遥测使用被悄悄追踪
链接失效、多年未动项目可能废弃维护高危
权限清楚、有变更日志维护者考虑了风险

粗心与恶意的区别

最有用的判断是区分这两者。多数糟糕 README 只是粗心,缺变更日志不等于恶意,死链烦人但不邪恶。恶意表现为隐藏行为:网络访问遮遮掩掩、安装绕过审查、更新不看就到。学会分辨单薄与不诚实。

粗心的 README 是维护风险。隐藏代码运行的 README 是信任风险。后者才该转身离开。

一份好的 README 长什么样

好的一份明确说明插件能做什么、不能做什么。

  • 明确的权限范围,并各给一个理由。
  • 变更日志,写明改了什么、何时改的。
  • 哪怕简短的威胁模型说明。
  • 签名发布,便于核实你下载的东西。

你真的能用上的流程

这些不必花很久。首页 / 的评分给第一眼判断,维度在 /blog/dsh-quality-score-decoded 解释,但 README 才是确认处。把厂商挡在评分外:像 /blog/why-independent-plugin-scoring 说的独立数字才值得信任。

  • 读 README,记下任何没说清的地方。
  • 信任之前,先查那个独立评分。
  • 固定你审查过的确切版本。
  • 先在沙箱或一次性环境里安装。

只要用了 curl | sh 就该拒绝吗?

不总是,但应先读那个脚本。读不了就别管道它。先下载检查,再自己运行。这模式有风险,因它默认跳过那一步。

README 很旧就说明插件不安全吗?

单看不说明。废弃 README 意味着项目可能无人维护,这和无恶意代码不是一回事。决定前先查发布日期,以及链接是否还通。

评分在这其中是什么位置?

README 是你的确认步骤,评分是快速过滤。用评分给要审的排个序,再让 README 告诉你厂商的话是否和代码对得上。两者合起来胜过单独任一个。

plugin readme red flagsreadme risk signalsplugin docs warningplugin security reviewreadme risk signalsplugin docs warningplugin readme checklistplugin maintainer signals