如何限制NPM安装

时间:2018-11-28 19:28:17

标签: node.js npm npm-install malware

在使用recent malware attack讨论popular NPM package时(并且从我们的代码库中删除了此软件包之后),我开始研究限制npm install命令的方法。到目前为止,我还没有找到任何方法来限制开发人员可以安装的内容。

这会使每个人都受益的原因有两个:

  1. 具有进一步的保护层,可防止恶意软件包的安装。
  2. 避免键入名称错误时意外安装软件包

关于#1,其想法是每个团队都可以创建一个已批准的软件包名称列表,这些列表可以在 npm install实际运行之前进行检查-本质上为npm软件包。

关于#2,我们的团队实际上受到在NPM上删除此软件包的影响-但我们具有这种依赖性的唯一原因是因为偶然地 安装了该软件包并且有一段时间没有引起注意。这是我认为发生的事情:

  1. 开发人员想要安装软件包,并打算键入npm install --save somepackagehere注意破折号
  2. 开发人员不小心键入了npm install save(<破折号),因此安装了save依赖项event-stream的npm软件包。 flatmap-stream

节点版本: 9.9.1

NPM版本: 6.4.1


问题

是否存在不依赖于人工代码审查的现有方法来实现上述内容?

1 个答案:

答案 0 :(得分:0)

如评论中所建议,仅通过代码审查来检查package.json的更改已达到“限制” NPM软件包安装的目的。