首页 > 解决方案 > 如何限制 NPM 安装

问题描述

在讨论最近使用流行的 NPM 包进行的恶意软件攻击时(并且在从我们的代码库中删除了这个包之后),我开始研究限制命令的方法。到目前为止,我还没有找到任何方法来限制开发人员可以安装的内容。npm install

这对每个人都有好处的原因有两个:

  1. 对安装恶意软件包有进一步的保护。
  2. 避免在包名拼写错误时意外安装包

关于#1,这个想法是每个团队都可以创建一个经过批准的包名称列表,可以在实际运行之前 npm install对其进行检查——本质上是为 npm 包创建某种类型的审查过程。

关于#2,我们的团队实际上受到了在 NPM 上删除这个包的影响——但我们有这种依赖关系的唯一原因是因为一个包是偶然安装的,并且有一段时间没有被注意到。这是我认为发生的事情:

  1. 开发人员想要安装一个包并打算输入npm install --save somepackagehere注意破折号
  2. 开发人员意外键入npm install save没有破折号),因此安装了依赖于event-stream的save npm 包,该包依赖于flatmap-stream

节点版本: 9.9.1

NPM 版本: 6.4.1


问题

是否有一种现有的方法来实现我上面描述的不依赖于手动代码审查的方法?

标签: node.jsnpmnpm-installmalware

解决方案


正如评论中所建议的,简单地让代码审查检查package.json更改已经达到了“限制” NPM 包安装的目的。


推荐阅读