首页 > 解决方案 > 公共 NPM 注册表是否验证上传的 tarball 的校验和?

问题描述

我最近目睹了一个损坏的包版本被发布到 npm 注册表的实例。我发现很多关于在这个事件中做什么(即重新发布包)的问题,但很少有关于“首先是什么导致它发生?”的问题。

在我的情况下(遗憾的是,我无法分享 - 私人组织范围等),拉动 tarballnpm pack显示文件确实不完整/损坏,并且与预期的校验和不匹配。

npm publish有效负载包括一个dist.Integrity带有 SHA-512 校验和的字段,以及每个包上传。鉴于其闭源性质,这可能有点难以回答 - 但是 NPM 注册表是否会在其方面进行任何验证,以检查上传的内容是否与校验和匹配,然后再使包版本可供使用?

提前致谢!

标签: npm

解决方案


追问:是的,确实如此。我通过捕获npm upload有效负载并更改dist.integrity校验和来验证这一点。NPM 正确诊断校验和不匹配,并拒绝该包。


推荐阅读