漏洞描述:
Apache-Log4j日志库版本号过低,存在bug,黑客可通过日志记录远程执行程序
解决办法:
需要升级项目中所引用到的log4j依赖的的版本号
存在的疑问:
而在springboot项目中,我们并未自己特地添加过关于Log4j的依赖,可在实际生成的代码jar中却存在着log4j的jar包?原因在于我们在springboot项目中的starter中底层所依赖了log4j。
而此时我们该如何升级log4j等最底层的jar包版本呢?
解决方式:
针对以上依赖传递性的原因造成底层的jar包需要进行升级,解决方式有两种。
方式一:
在starter中先对需要进行版本升级的依赖进行排除,后通过dependency标签自行引入依赖并指定版本号。若是父子项目,可在父项目中处理,子项目则会直接继承父项目的属性。
方式二:
通过dependencyManagement标签对需要进行版本号替换的依赖进行版本号声明,在starter中排除需要版本号替换的依赖,再通过dependency标签引入依赖,此时不需要再指定版本号,因版本号在mangement标签中已作声明。
结果:
通过上述两种方式,最终的依赖如图,log4j的版本号得到了升级,经过测试与验证,漏洞也得到修复。