我现在在国家预防机制里四处闲逛。我试图了解使用npm的开发人员面临什么样的安全风险。
我感兴趣的主要攻击是供应链攻击,开发人员或构建系统(我们可以认为是另一个开发人员)得到了他们不希望得到的东西。
当我做以下事情时,我有意想不到的行为--至少对我来说是这样的:
npm initnpm install xxx --不管xxx是什么,rm -rf node_modulesnpm 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
复制相似问题