node.js - 如何限制 NPM 安装
问题描述
在讨论最近使用流行的 NPM 包进行的恶意软件攻击时(并且在从我们的代码库中删除了这个包之后),我开始研究限制命令的方法。到目前为止,我还没有找到任何方法来限制开发人员可以安装的内容。npm install
这对每个人都有好处的原因有两个:
- 对安装恶意软件包有进一步的保护。
- 避免在包名拼写错误时意外安装包
关于#1,这个想法是每个团队都可以创建一个经过批准的包名称列表,可以在实际运行之前 npm install
对其进行检查——本质上是为 npm 包创建某种类型的审查过程。
关于#2,我们的团队实际上受到了在 NPM 上删除这个包的影响——但我们有这种依赖关系的唯一原因是因为一个包是偶然安装的,并且有一段时间没有被注意到。这是我认为发生的事情:
- 开发人员想要安装一个包并打算输入
npm install --save somepackagehere
(注意破折号) - 开发人员意外键入
npm install save
(没有破折号),因此安装了依赖于event-stream的save npm 包,该包依赖于flatmap-stream。
节点版本: 9.9.1
NPM 版本: 6.4.1
问题
是否有一种现有的方法来实现我上面描述的不依赖于手动代码审查的方法?
解决方案
正如评论中所建议的,简单地让代码审查检查package.json
更改已经达到了“限制” NPM 包安装的目的。
推荐阅读
- java - Java 尝试使用 For 循环遍历 Int ArrayList 并添加到 Hashset 问题
- html - 如何在 CSS 中设置 li、span 和 a 元素的样式
- hadoop - HDP sanbox:yum install 抛出 403 错误
- javascript - 如何使用选项填充动态创建的选择
- python - Mrjob 无法在 dataproc 上创建集群:__init__() 有一个意外的关键字参数“通道”
- python - 如何将用户从登录页面重定向到不同应用程序 Django 中的注册页面?
- php - wordpress 插件意外字符
- unity3d - 如何将 Google 地图图像“地形”添加到 Maps SDK for Unity?
- c - 使用CSV文件在C中单独解析字符串
- php - 在 WordPress 页面模板上,哪些代码可以自定义标题和元描述?