我最近开始使用 npm,有时在安装过程中会弹出一些警告。
例如,运行
npm install gulp-chimp --save-dev
Run Code Online (Sandbox Code Playgroud)
产生以下警告
npm WARN 已弃用 to-iso-string@0.0.2:to-iso-string 已弃用,请改用 @segment/to-iso-string。
npm WARN deprecated jade@0.26.3: Jade 已重命名为 pug,请安装最新版本的 pug 而不是 jade
npm 警告已弃用 minimatch@0.3.0:请更新到 minimatch 3.0.2 或更高版本以避免 RegExp DoS 问题
npm WARN 已弃用ough-cookie@2.2.2:解析 Set-Cookie 的 ReDoS 漏洞https://nodesecurity.io/advisories/130
我的问题不是针对 gulp-chimp 的,而是针对 npm 的。我是否应该尝试更新这些软件包?我知道开发人员决定是否使用更新的软件包,我觉得我自己尝试更新软件包可能会破坏某些东西,但我也担心让漏洞存在。
小智 6
为了确保更新依赖项不会破坏任何内容,版本控制是必须的。通常,您可以毫不费力地更新已弃用的依赖项,但有时这样做肯定会导致使用它的包损坏。
我不建议忽略弃用错误。虽然软件包维护者确实需要更新它,但问题仍然是你的。许多过时的软件包都存在已知的安全漏洞,这些漏洞现在将影响您的应用程序。
要全面了解哪些依赖项已过时,请运行以下命令:
npm outdated -depth=3
它默认的深度0只会检查顶级依赖项,因此在一定程度上增加深度级别(3 只是一个示例)将揭示更多过时的依赖项。
正如您已经指出的,更重要的是找出这些依赖项中哪些可能存在已知漏洞。您可以使用Snyk等工具来测试这些漏洞,该工具会根据开源漏洞数据库检查您的依赖关系。Snyk 将允许您在不升级的情况下修补漏洞(使用 CLI 或自动 Github 拉取请求),以防这些升级破坏您的代码。
全面披露:我在 Snyk 工作。:) 话虽这么说,这正是它要帮助解决的问题。
| 归档时间: |
|
| 查看次数: |
5252 次 |
| 最近记录: |