gpt4 book ai didi

node.js - npm 审计与 yarn 审计

转载 作者:行者123 更新时间:2023-12-02 16:51:28 24 4
gpt4 key购买 nike

我有一个使用 yarn 作为其包管理器的 React Native 项目 (0.61.4)。

当我运行 yarn audit 时,报告了大量漏洞:

18202 vulnerabilities found - Packages audited: 958823
Severity: 18202 High
✨ Done in 14.34s.

大多数都在一些非常深的依赖路径中。例如:

┌───────────────┬──────────────────────────────────────────────────────────────┐
│ high │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.17.12 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ react-native │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ react-native > @react-native-community/cli > │
│ │ metro-react-native-babel-transformer > @babel/core > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://www.npmjs.com/advisories/1065 │
└───────────────┴──────────────────────────────────────────────────────────────┘

当我运行 npm audit 时,它首先报告:

Neither npm-shrinkwrap.json nor package-lock.json found: Cannot audit a project without a lockfile

所以我运行:

npm i --package-lock-only

package-lock.json 文件生成。经检查,该文件似乎是正确的。

当我现在运行 npm audit 时,结果是:

=== npm audit security report ===                        

found 0 vulnerabilities

我不明白这两个包管理器之间的差异。为什么npm报0错,yarn18.202?

最佳答案

如果不查看锁定文件并进行比较,很难估计为什么会发生这种情况。但是,据我所知,只有当两个锁定文件都解析为相同依赖项的不同版本时才会发生这种情况。
您的 yarn.lock 文件是较早生成的,因此它包含易受攻击的旧版本依赖项,并且由于 package-lock.json 是之后生成的,它会解析为最新版本/这些依赖项的固定版本。

请记住,npm i --package-lock-only 只会创建 package-lock.json 文件,不会安装任何东西,但它不会与实际安装的包保持一致.我认为您假设运行该命令只会从已安装的包中派生锁定文件,但它实际上会生成锁定文件,就像您在没有标志的情况下运行它一样。

总而言之,两个锁定文件都解析为相同依赖项的不同(次要/补丁)版本。

关于node.js - npm 审计与 yarn 审计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58518471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com