今日,一个核爆炸级别的漏洞在技术圈引爆,那就是Apache Log4j 2 远程代码执行漏洞。一旦被攻击将造成严重危害。
log4j2是apache开源的一款优秀的JAVA日志框架,重写了log4j,提供了丰富的功能,使用起来非常方便。该日志被广泛应用于业务系统中,用来记录应用系统日志。
不过,近几年都在使用springboot框架,这个框架默认的是使用logback日志框架,如果没有明确指定使用log4j2日志,修复起来只需要把log4j2的maven依赖去掉即可,一定要启动项目进行验证。
下面是修复方法:
在maven项目的pom.xml中,找到spring-boot-starter-web如下所示,去掉log4j-api和log4j-core
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
</exclusions>
</dependency>
如果项目中确实在使用log4j2,那只有按照官方升级到最新版本了。现在没有加入依赖库中,需要自己下载jar包引入本地依赖,参考下面加入依赖。
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-xxx</artifactId>
<version>xxxxx</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/xxxxx.jar</systemPath>
</dependency>