发布于 2026-01-06 1 阅读
0

npm 安全提示,助您远离恶意模块

npm 安全提示,助您远离恶意模块

技巧 3:忽略运行脚本以最大限度地减少攻击面(npm 安全十大最佳实践之一)

npm CLI 与包运行脚本配合使用。如果您曾经运行过 `npm run build`npm startnpm test`npm run package`,那么您也使用过包运行脚本。

npm CLI 基于包可以声明的脚本构建,并允许包定义在包安装到项目期间的特定入口点运行的脚本。

例如,其中一些脚本钩子条目可能是postinstall正在安装的软件包将执行的脚本,以便执行清理任务。

利用这种能力,不法分子可以创建或修改软件包,并在安装软件包时运行任意命令来执行恶意行为。

我们已经看到这种情况发生的几个例子包括:广为人知的eslint-scope事件(该事件收集了 npm 令牌)和crossenv事件,以及其他 36 个软件包滥用 npm 注册表的拼写抢注攻击。

应用以下最佳实践,以最大限度地减少恶意模块的攻击面:

  • 安装第三方模块前,务必进行审查和尽职调查,以确认其运行状况和可靠性。

  • 不要盲目升级到新版本;在尝试使用新软件包版本之前,请给它们一段时间的流通时间。

  • 升级前,请务必查看升级版本的变更日志和发行说明。

  • 安装软件包时,请务必添加--ignore-scripts后缀以禁用第三方软件包执行任何脚本。

  • 请考虑将其添加ignore-scripts到您的.npmrc项目文件或全局 npm 配置中。

--

我还写了一篇博文,介绍了你应该采用的10 个完整的 npm 安全最佳实践,其中包含一个高分辨率可打印 PDF,就像你在下面看到的片段一样。

感谢阅读,也感谢Verdaccio 团队的Juan Picado与我一起完成这项工作。

节点版本

文章来源:https://dev.to/lirantal/npm-security-tips-to-keep-you-safe-of-malicious-modules-25bp