atom 的 apm 和 npm 如何验证包的完整性?

信息安全 哈希 npm
2021-08-14 07:31:45

是否有内置的验证方法来确保包中包含正确的代码?他们是否使用某种散列?

1个回答

根据npm issue #6886,有一个系统可以通过任何校验和或散列系统来验证包的内容。

来自 GitHub 用户othiym23的引用:

npm 几乎从一开始就包括通过它们的 SHA-1 摘要验证包 tarball。不过,值得指出的是,这是一种验证措施,以确保软件包 tarball 已从注册表中正确下载;它并不是为了防止替代攻击。

因此,虽然数据被验证为来自 npm 服务器的相同数据,但无法验证从服务器传递的代码是否是您期望的代码(例如,没有用于验证包的系统使用您自己的可信哈希)。

源代码中似乎有一些验证检查,但是,源代码还显示,基于 Git 存储库的 npm 包获取没有完整性验证。

您可以在此文件中的 ~120 行找到此条件的逻辑