首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >npm包-lock.json中的完整性字段实际上用于什么?

npm包-lock.json中的完整性字段实际上用于什么?
EN

Stack Overflow用户
提问于 2020-11-15 14:16:08
回答 1查看 3K关注 0票数 1

我现在在国家预防机制里四处闲逛。我试图了解使用npm的开发人员面临什么样的安全风险。

我感兴趣的主要攻击是供应链攻击,开发人员或构建系统(我们可以认为是另一个开发人员)得到了他们不希望得到的东西。

当我做以下事情时,我有意想不到的行为--至少对我来说是这样的:

  • npm init
  • npm install xxx --不管xxx是什么,
  • 编辑包-lock.json文件并修改完整性,例如更改一个char
  • rm -rf node_modules
  • npm install

预期会抱怨已安装的包的散列不匹配

实际的包-lock.json刚刚更新

我在这里很傻吗?我期望完整性字段会导致npm在安装了一些意想不到的东西时以某种方式发现。为什么它只是被更新?

EN

回答 1

Stack Overflow用户

发布于 2020-11-16 16:11:00

我用npm@7npm@6进行了测试,两次都得到了EINTEGRITY错误。我安装了Node.js 10.x并使用npm@5进行了测试,并再次获得了EINTEGRITY。在npm@5之前,不支持package-lock.json文件。

我可以想到两个场景(除了“我忘了保存Packy-lock.json中的更改”之类的东西),它们可能解释了您所看到的。

首先,您可能是在删除package-lock.json时意外地删除了node_modules?我的意思是,我经常把这两种东西移除,所以我可能会有肌肉记忆问题。也许你也有一样的?

我唯一能想到的另一件事是,如果您最初使用支持npmpackage-lock.json版本安装,但是在编辑package-lock.json之后,在引入package-lock.json特性之前使用一个版本重新安装。这似乎不太可能,但如果您在安装和使用nvm时使用不同的交互式shell,则是可能的。打开两个终端,在一个终端中更改nodenpm的版本,然后使用两个终端--您现在在两个终端中使用不同的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64845434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档