首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查我的Java项目是否使用Log4j以及哪个版本?

如何检查我的Java项目是否使用Log4j以及哪个版本?
EN

Stack Overflow用户
提问于 2021-12-13 08:02:54
回答 3查看 15.7K关注 0票数 13

由于使用了Log4Shell漏洞,我想搜索并找出我的Log4j项目是直接实现Log4j还是通过依赖关系实现Log4j,以及哪个版本。

例如,我使用这些依赖关系管理工具进行了项目:

  1. Maven项目
  2. 阿帕奇常春藤项目
  3. 没有任何依赖关系管理的旧遗留项目

如何在这些类型的依赖管理工具上做到这一点?

关于该漏洞的详细信息(包括缓解步骤):

CVE-2021-44228

Apache Log4j安全漏洞

EN

回答 3

Stack Overflow用户

发布于 2021-12-13 08:06:19

您可以从项目中的命令行运行Maven依赖树:

代码语言:javascript
复制
mvn dependency:tree

在输出中搜索log4j。如果您找到它,这可能意味着您的项目要么直接包含log4j,要么另一个依赖项将log4j作为传递依赖项。

票数 6
EN

Stack Overflow用户

发布于 2021-12-15 17:10:23

如果使用Maven和Linux,则可以运行:

代码语言:javascript
复制
mvn dependency:tree | grep log4j

这将检查您的依赖项,并只在您将Log4j作为依赖项时显示结果。

如果它是一个传递依赖项,并且要检查它来自哪个依赖项,则可以使用:

代码语言:javascript
复制
mvn dependency: tree | grep -B20 log4j

它将在屏幕上显示Log4j之前的20行。如果仍然看不到它的主要依赖项,则可以将其从20增加到50,以此类推,直到找到它为止。

代码语言:javascript
复制
KKKK
票数 4
EN

Stack Overflow用户

发布于 2021-12-13 13:06:28

到目前为止,我对西夫特https://github.com/anchore/grype提供的内容感到满意。这些工具列出了给定的Docker映像或包含代码独立于堆栈的目录的所有代码依赖项!安装简单,执行速度快。

不过,它是独立于Java的,而且比您针对基于Maven的解决方案的具体问题更通用。所以这取决于你是否有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70331513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档