8月22日·星期六 11:05·来源:InfoQ

npm 终于动手了:默认封杀 postinstall 脚本

npm 12正式发布,默认关闭依赖项的preinstall、install和postinstall脚本执行,开发者需明确批准才能运行,包括node-gyp构建及Git、文件等依赖的prepare脚本。同时,--allow-git和--allow-remote默认设为none,阻断Git依赖覆盖配置及HTTPS tarball的代码执行路径。开发者可将批准的脚本生成允许列表提交至package.json。社区反应不一,支持者认为此举消除恶意脚本隐患,反对者指出patch-package等合法场景受限,且允许列表无作用域导致依赖行为不可预测。安全专家警告审批疲劳可能削弱防护效果,过去一年约53%的恶意npm攻击涉及生命周期脚本。npm是最后一个采取此类控制的主流包管理器,pnpm、Yarn和Bun已提供类似机制。全局安装和npx需通过配置启用脚本,现有ignore-scripts设置优先级更高。
本文摘要由千智坊基于公开报道整理,查看完整内容:阅读原文(InfoQ)→