我现在在国家预防机制里四处闲逛。我试图了解使用npm的开发人员面临什么样的安全风险。
我感兴趣的主要攻击是供应链攻击,开发人员或构建系统(我们可以认为是另一个开发人员)得到了他们不希望得到的东西。
当我做以下事情时,我有意想不到的行为--至少对我来说是这样的:
npm init
npm install xxx
--不管xxx是什么,rm -rf node_modules
npm install
预期会抱怨已安装的包的散列不匹配
实际的包-lock.json刚刚更新
我在这里很傻吗?我期望完整性字段会导致npm在安装了一些意想不到的东西时以某种方式发现。为什么它只是被更新?
发布于 2020-11-16 16:11:00
我用npm@7
和npm@6
进行了测试,两次都得到了EINTEGRITY
错误。我安装了Node.js 10.x并使用npm@5
进行了测试,并再次获得了EINTEGRITY
。在npm@5
之前,不支持package-lock.json
文件。
我可以想到两个场景(除了“我忘了保存Packy-lock.json中的更改”之类的东西),它们可能解释了您所看到的。
首先,您可能是在删除package-lock.json
时意外地删除了node_modules
?我的意思是,我经常把这两种东西移除,所以我可能会有肌肉记忆问题。也许你也有一样的?
我唯一能想到的另一件事是,如果您最初使用支持npm
的package-lock.json
版本安装,但是在编辑package-lock.json
之后,在引入package-lock.json
特性之前使用一个版本重新安装。这似乎不太可能,但如果您在安装和使用nvm
时使用不同的交互式shell,则是可能的。打开两个终端,在一个终端中更改node
和npm
的版本,然后使用两个终端--您现在在两个终端中使用不同的版本。
https://stackoverflow.com/questions/64845434
复制相似问题