由于使用了Log4Shell漏洞,我想搜索并找出我的Log4j项目是直接实现Log4j还是通过依赖关系实现Log4j,以及哪个版本。
例如,我使用这些依赖关系管理工具进行了项目:
如何在这些类型的依赖管理工具上做到这一点?
关于该漏洞的详细信息(包括缓解步骤):
发布于 2021-12-13 08:06:19
您可以从项目中的命令行运行Maven依赖树:
mvn dependency:tree在输出中搜索log4j。如果您找到它,这可能意味着您的项目要么直接包含log4j,要么另一个依赖项将log4j作为传递依赖项。
发布于 2021-12-15 17:10:23
如果使用Maven和Linux,则可以运行:
mvn dependency:tree | grep log4j这将检查您的依赖项,并只在您将Log4j作为依赖项时显示结果。
如果它是一个传递依赖项,并且要检查它来自哪个依赖项,则可以使用:
mvn dependency: tree | grep -B20 log4j它将在屏幕上显示Log4j之前的20行。如果仍然看不到它的主要依赖项,则可以将其从20增加到50,以此类推,直到找到它为止。
KKKK发布于 2021-12-13 13:06:28
到目前为止,我对西夫特和https://github.com/anchore/grype提供的内容感到满意。这些工具列出了给定的Docker映像或包含代码独立于堆栈的目录的所有代码依赖项!安装简单,执行速度快。
不过,它是独立于Java的,而且比您针对基于Maven的解决方案的具体问题更通用。所以这取决于你是否有用。
https://stackoverflow.com/questions/70331513
复制相似问题