← 回總覽

一个 npm install,坑了前端 15 年!终被废!

📅 2026-06-12 08:33 前端开发爱好者 软件编程 2 分鐘 1453 字 評分: 82
npm 供应链安全 JavaScript Node.js 开源生态
📌 一句话摘要 npm v12 将于 2026 年 7 月默认禁止生命周期脚本执行,切断安装即执行代码的供应链攻击路径,推动 JavaScript 生态向「默认拒绝、按需授权」的安全模型演进。 📝 详细摘要 文章报道了 npm v12 即将发布的核心变更:默认禁止 preinstall、install、postinstall 等生命周期脚本的自动执行。作者指出,过去 15 年 npm install 同时下载并执行第三方代码的设计是供应链攻击的温床,攻击者可通过恶意 postinstall 脚本在安装阶段窃取凭证、控制维护者账号。文章引用 React 技术博主 Sebastien Lorb

📌 一句话摘要

npm v12 将于 2026 年 7 月默认禁止生命周期脚本执行,切断安装即执行代码的供应链攻击路径,推动 JavaScript 生态向「默认拒绝、按需授权」的安全模型演进。

📝 详细摘要

文章报道了 npm v12 即将发布的核心变更:默认禁止 preinstall、install、postinstall 等生命周期脚本的自动执行。作者指出,过去 15 年 npm install 同时下载并执行第三方代码的设计是供应链攻击的温床,攻击者可通过恶意 postinstall 脚本在安装阶段窃取凭证、控制维护者账号。文章引用 React 技术博主 Sebastien Lorber 的观点,将此次变更类比为疫苗,通过降低恶意包的传播系数(R 因子)来提升生态整体安全性。文章还分析了受影响的项目(如 sharp、Prisma、node-sass 等原生模块与工具链),并指出 pnpm、Yarn、Bun、Deno 等工具已朝相同方向演进,未来 Node.js 可能引入类似 Deno 的权限模型。

💡 主要观点

- npm v12 默认禁止生命周期脚本执行,切断安装即执行代码的路径。 过去 npm install 会同时下载并自动运行依赖中的 preinstall、install、postinstall 等脚本,攻击者可利用此机制在安装阶段窃取凭证或植入恶意代码。

此次变更旨在降低供应链攻击的传播效率,而非彻底消灭恶意包。 文章引用 Sebastien Lorber 的「疫苗」比喻,认为通过提高感染开发者的成本,可降低恶意包的传播系数(R 因子),使攻击链条更难持续。
影响范围广泛,涉及原生模块、代码生成工具及 monorepo 流程。 sharp、canvas、Prisma Client 生成、OpenAPI SDK 生成等依赖安装脚本完成初始化的项目,未来需开发者主动授权才能执行。
npm 的变革是 JavaScript 生态安全模型转向的一部分。 pnpm、Yarn、Bun、Deno 等工具已默认限制安装脚本,生态正形成「默认拒绝、按需授权、最小权限」的共识,类似浏览器的权限模型。

💬 文章金句

- 安装依赖 = 下载代码 + 执行代码

  • npm v12 更像是一针疫苗。它并不能彻底消灭恶意包,但可以降低恶意包传播的效率。
  • 即使你不用 npm,你也应该庆祝 npm 的安全升级。
  • 默认拒绝,按需授权,最小权限原则。

📊 文章信息

AI 初评:82

来源:前端开发爱好者

作者:前端开发爱好者

分类:软件编程

语言:中文

阅读时间:9 分钟

字数:2131

标签: npm, 供应链安全, JavaScript, Node.js, 开源生态

阅读完整文章

查看原文 → 發佈: 2026-06-12 08:33:00 收錄: 2026-06-12 18:00:12

🤖 問 AI

針對這篇文章提問,AI 會根據文章內容回答。按 Ctrl+Enter 送出。