高危漏洞 log4j漏洞产生原因这里就不赘述了,这里只聊解决办法:替换jar的方式。
发现身边的开发同学在替换jar的时候遇到如下问题:
0、一定要替换吗?
1、不确定要替换那些包
2、替换后旧版jar仍存在
1、2问题答案如下:
1、简单粗暴替换<groupId>org.apache.logging.log4j</groupId>组下面的所有包
2、因为maven依赖传的导致新引入的报又依赖了旧版本log4j包。
首先我们聊下问题0,一定要替换吗?
不一定需要替换,虽然项目中引用了jar,如:
1、没有开启JNDI(在spring.properties里添加spring.jndi.ignore=true 可以禁用)
2、或者禁止应用对外访问互联网。
3、移除了JndiLookup类文件,(操作命令: zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class)
以上都是无害的。但是堵不如疏,没准啥时候就出幺蛾子了,有精力最好还是升级下jar包,花不了多少时间。
idea下jar升级操作方法:
1、直接查看当前项目jar包(见下图左侧)版本等比较直观。 2、进入pom文件,查看jar包依赖视图(比较方便看依赖关系和操作) jar包依赖视图进入方式:右键选择下图红框处。
查看log4j系列版本后,如发现不符合安全漏洞要求的jar包,
进入jar包依赖视图选定该包,然后右键exclude(从当前父依赖下屏蔽此jar包,会自动更新pom文件),
然后重新引入(直接在pom文件下添加对应的最新版本jar包)。
注意: log4j 下的jar包之间也会存在依赖关系,需要再次屏蔽,解决屏蔽后仍存在的问题,如下: 依次对所有包进行如上操作,直到替换所有旧版本log4j系列jar包。
|