当前位置: 首页 > 知识库问答 >
问题:

如何更新npm嵌套(易受攻击)依赖项?

明阳旭
2023-03-14

Github已经将我的应用锁文件中的依赖项标记为易受攻击。

要修复它,我应该将该包更新到一个较新的版本。

抱歉,如果这是一个非常基本的问题,但我似乎没有找到任何有用的关于这一点。

共有1个答案

庾波光
2023-03-14

您是正确的--因为易受攻击的包位于您的一个依赖项内,如下所示:

Your Package -> Dependency -> Vulnerable package

您将无法更新依赖项的依赖项,使其能够在未来的NPM InstallYarn中存活。

但是,您可以采用以下方法:

  • bug the Maintainer:让他们更新他们的依赖项和bump版本。这将解决您和依赖此包的您的同伴的问题。
  • 是否有可供选择的软件包?也许您可以使用一个不同的包,而不是易受攻击的包。这将需要对代码进行一些更新,但从长远来看可能是最好的方法,特别是在原始维护程序没有响应的情况下。
  • 自己修复:分叉存储库并更新此副本中的依赖项。然后可以在package.json.
  • 中引用包

这种方法将在短期内解决问题,但不建议您这样做,因为您不会从维护人员所做的任何bug修复中受益,此外,在您完成此操作时,依赖项可能已经更新了!

 类似资料:
  • 上下文:我们使用2.6.3版本的com.microsoft.azure:应用见解-日志-log4j1_2来检测我们的Scala代码。不幸的是,这依赖于1.2.17版本的log4j: log4j。1.2.17版本的log4j: log4j有一个严重的安全漏洞(参考:https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-17571)问题是:“L

  • 问题内容: 我想使用NPM软件包。它具有各种依赖性。依赖图的一部分如下所示: 不幸的是,此版本中存在一个错误,导致该错误无法在Mac OS X上正确安装。此问题已在最新版本中修复。 如何获得更新版本的? 一些其他上下文: 明确要求版本为,明确要求版本为。 首先添加到我程序包的依赖项没有任何作用;这两个版本均已安装,并且仍使用旧版本 问题答案: 您可以使用npm收缩包装功能,以覆盖任何依赖性或子依赖

  • 一些额外的上下文: 显式要求的版本,显式要求的版本. 首先向我的包的依赖项添加没有效果;这两个版本都已安装,仍然使用旧版本(请参见:使用NPM安装包时,是否可以告诉它使用其依赖项的不同版本?)。

  • 考虑到log4j2。x正遭受一个主要的远程代码执行漏洞(检查漏洞),我开始查看我的项目依赖性,看看我是否通过slf4j使用Log4J,幸运的是我没有。 但是我通过发现了对Log4J的另一种依赖。包装的最后版本是在11月2021号生产的,所以这个问题在那里没有得到缓解。 我怎样才能摆脱依赖而不摆脱,因为我非常依赖它。

  • 我正在构建一个专门使用JSON作为请求和响应内容的网络服务(即,没有表单编码的有效载荷)。 如果以下情况属实,web服务是否容易受到CSRF攻击? > 任何没有顶级JSON对象的POST请求,例如,,将被400拒绝。例如,内容为的请求将因此被拒绝。 任何具有以外的内容类型的请求将被400拒绝。例如,具有内容类型的请求将因此被拒绝。 所有GET请求都是安全的,因此不会修改任何服务器端数据。 客户端通

  • 如果我有一个OSGI Bundle jar中嵌套了依赖项jar,我是否需要在导入包清单中列出这些类以便使用它们?我不这么认为。 另外,我如何将这些依赖项jar添加到我的包中。我只是把它们放在根文件夹里吗?我是否需要向清单文件添加任何内容才能使用这些依赖关系?