【问题标题】:npm audit - how to make sure I have no production vulnerabilities?npm audit - 如何确保我没有生产漏洞?
【发布时间】:2019-12-06 23:48:02
【问题描述】:

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

npm audit > vulnerabilities.txt

然后我搜索了“依赖关系”的所有实例

这会带来一个类似的列表:

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 在生产中没有发现包漏洞吗?

【问题讨论】:

    标签: npm npm-audit


    【解决方案1】:

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

    npm prune --production --dry-run
    

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

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

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

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

    【讨论】:

      【解决方案2】:

      看起来答案是肯定的。

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

      如果在某个时候 npm 直接在 npm audit 上支持 --production 标志,那会更容易。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-05
      • 2020-02-15
      • 2018-10-23
      • 2020-04-28
      • 2021-09-09
      • 2021-12-21
      • 2021-08-14
      • 2021-12-19
      相关资源
      最近更新 更多