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

Gradle/Java:如何安全升级log4j?

邓韬
2023-03-14

鉴于最近的Log4J漏洞,升级gradle项目中传递依赖的最安全方法是什么?我的项目没有显式使用log4j(它使用logback),但它有许多依赖关系,这些依赖关系会带来易受攻击的版本(

共有1个答案

丌官绍元
2023-03-14

将以下内容添加到您的gradle.build文件中:

configurations.all {
  resolutionStrategy.eachDependency { details ->
    if (details.requested.group == 'org.apache.logging.log4j') {
      details.useVersion '2.15.0'
      details.because 'zero-day-exploits suck'
    }
  }
}

dependencies {
…
}

请注意,正如文件所指出的:

以下机制允许您编写直接注入解析引擎的规则。因此,它们可以被视为强力解决方案,可能隐藏未来的问题(例如,如果添加了新的依赖项)。因此,一般的建议是,只有在其他手段不够的情况下才使用以下机制。

我意识到OP要求升级依赖项的“最安全”方法——我选择将其解释为最有可能删除零日漏洞。尽管如此,我还是认识到这种蛮力方法并不能保证库之间的兼容性,但是这应该确保没有易受攻击的log4j版本最终出现在您的依赖树/构建中。

当然,您应该在进行更改后运行gradle依赖项,以确保更改已经完成,并且没有任何遗留的版本存在问题。

更新:按照此处的建议,删除了版本比较。

 类似资料:
  • 在这里,我在将应用程序导入android studio时面临很多问题。 需要升级gradle版本。

  • 我使用的是Mac OS X版本10.11.5(15F34)。我使用的是Android Studio 2.1.2(构建于2016年5月26日)。我下载了grade-2.13-all.zip并将其解压缩到/usr/local/grade-2.13并设置在一个环境变量中。当我从终端的任何位置运行'gradle-v'时,它就会工作 使用Android Studio时,我点击了文件>项目结构>项目。在屏幕上

  • 我需要帮助。我不能升级我的反应原生项目的gradle版本。 我尝试了很多东西,下载了Android Studio的最后一个版本 我改变了这个文件\android\gradle\包装\gradle-wrapper.properties,我试图升级使用,但我仍然不能升级它。 当我反应-本机弹出它的出口"分发Url=https://services.gradle.org/distributions/gr

  • 问题内容: 当我使用Homebrew()安装OpenCV时,每当运行以下命令进行测试时,都会遇到此问题: 我试图升级NumPy,但这很令人困惑: 当我运行brew升级NumPy时,出现了以下问题: 当我卸载它时: 我已经关注了这个问题,并从Mac中删除了Anaconda。 但是什么都没有改变。如何将NumPy版本链接到OpenCV? 问题答案: 因为我们在系统中有两个NumPy安装。一个由Home

  • 问题内容: 我在一个LAB工作站上安装了Python 2.7.11。我想将Python至少升级到3.5。 我该怎么办?我是否应该完全卸载2.7.11而不是安装新的2.7.11?有没有办法更新它?更新是个好主意吗? 问题答案: Python的每个次要版本(即3.x和2.x版本)都将与计算机上的其他版本并排安装。仅补丁程序版本将升级现有安装。 因此,如果您想保留已安装的Python 2.7,请放任它并