【问题标题】:React update outdated dependencies flagged by checkmarxReact 更新 checkmarx 标记的过时依赖项
【发布时间】:2022-05-02 17:37:59
【问题描述】:

在我的项目中,我有一些过时的依赖已被标记的校验码.

但是,标记的依赖项位于react-scripts 版本4.0.3 中。例如,react-scripts 中标记了一些包,即ejsimmerurl-parsedebug 等等。

单独升级这些软件包或更新到最新的react-scripts 版本的最佳方法是什么,可以解决吗?

  • 你得到什么信息?你在哪里得到它?哪个 Checkmark 产品?
  • 它用于检查安全漏洞的 Checkmarx 依赖项扫描
  • 它在报告中标记为风险

标签: javascript reactjs npm react-scripts checkmarx


【解决方案1】:

我是 Checkmarx 的安全研究员 Ravid。 请允许我回答你的问题。

解决此问题的最佳方法是将“根”(在这种情况下为反应脚本)更新到最新版本。

一旦您将此包更新到其最新版本(5.0.1),传递依赖项(AKA 子项)将相应更新。 例如,react-scripts 使用使用 immer 的 react-dev-utils,一旦将 react-scripts 更新到最新版本,您会注意到它使用了最新版本的 immer。

请注意,一个项目可能会使用同一个包的几个不同版本。 例如,react-scripts(最新)在版本 4.3.4(最新)以及 2.69 和 3.27 中使用调试。

重要的是要记住,即使在更新“根”包之后,仍然可能有过时的“子”包,因为某些包仍在使用易受攻击/过时的包版本。

一个例子是:

如您所见,react-scripts (latest) 使用 webpack-dev-server (latest),它使用 portfinder (latest),它使用 debug 3.2.7 (NOT latest) “问题”依赖于 portfinder,它不使用最新版本的调试。

关于在更新依赖项后破坏代码,Checkmarx 有一个引擎会提醒方法、行和文件被破坏 目前,这个功能只是内部的,但应该很快就可以投入生产了

【讨论】:

  • 那么,当根更新但依赖没有更新时,我们应该怎么做呢?
  • 感谢 Ravid,但是升级到最新版本可能会发生重大变化?解决这个问题的方法是什么?
  • @Sole 是的,更新依赖项可能会破坏您的代码。因为 Checkmarx 有一个引擎,可以提醒方法、行和文件被破坏 目前,这个功能只是内部的,但应该很快就可以投入生产
  • 我在最初的回答中附上了一个 PoC
  • 那么第二种情况呢,当更新父级并没有更新易受攻击的子级依赖时,在那种情况下该怎么办呢?
猜你喜欢
  • 2017-11-10
  • 1970-01-01
  • 2019-02-15
  • 2021-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-07
相关资源
最近更新 更多