npm审核-如何确保我没有生产漏洞?

时间:2019-07-29 15:40:23

标签: npm npm-audit

我试图确保我的项目在生产中没有漏洞,所以我运行了:

npm audit > vulnerabilities.txt

然后搜索“ Dependency of”的所有实例

会显示一个列表,如:

Line 199: Dependency of babel-preset-es2015 [dev]
Line 215: Dependency of babel-preset-es2015 [dev] 
Line 230: Dependency of babel-preset-es2015 [dev]     

我可以假设所有的人都带有那个[dev]标记,那么npm audit发现生产中没有程序包漏洞吗?

2 个答案:

答案 0 :(得分:0)

看起来答案是肯定的。

为了验证这一点,我跑了 npm audix fix --production 然后运行 npm audit 产生了一个列表,其中每个依赖项都是一个“ Dependency Of”,标记为[dev]。

如果在某个时候npm直接在npm audit上支持--production标志,那么它将变得更加容易。

答案 1 :(得分:0)

在较旧的 npm 版本中,您可以在下面执行,即使在我发现的较新版本中 --production 标志非常有问题并且节点仍然报告 devDependencies,在这两种情况下,您都可以使用它:

npm prune --production --dry-run

以上将输出来自内部依赖项的任何漏洞。不过,您需要手动修复任何漏洞。

注意:我参与过的许多项目都错误地在 devDependencies 中使用了生产依赖项,而不是依赖项。这当然需要先修复。 (只需在 package.json 和 npm i 中移动声明 - 如果需要,请检查锁定文件中的确切版本)

如果来自 node_module 的代码用于客户端(如果使用它有时很难判断)它应该在依赖项中(例如 corejs)

如果您有一个节点后端/托管,那么您需要检查它是否也用于生产中的 Node BE。