springboot内嵌Tomcat安全漏洞修复方式
作者:lzh_me
针对CVE-2020-1938漏洞,建议升级Tomcat至安全版本以避免受影响,影响版本包括:Apache Tomcat 9.x小于9.0.31、Apache Tomcat 8.x小于8.5.51、Apache Tomcat 7.x小于7.0.100及Apache Tomcat 6.x,
springboot内嵌Tomcat安全漏洞修复
漏洞扫描提示的是tomcat-embed-core[CVE-2020-1938],解决方式是升级tomcat的版本。
该漏洞影响的版本
- Apache Tomcat 9.x < 9.0.31
- Apache Tomcat 8.x < 8.5.51
- Apache Tomcat 7.x < 7.0.100
- Apache Tomcat 6.x
其余的安全漏洞也可以通过升级版本的方式解决,或者找对应tomcat版本的修复补丁,这里只是介绍版本升级。
问题的关键点是如何升级Springboot内嵌的tomcat版本。
1、确认内嵌tomcat的版本
通过mvn dependency:tree命令
首先进入项目的目录,一定是项目的目录,cmd窗口或者IDEA的Terminal窗口运行:
mvn dependency:tree > tree.txt
命令运行结果:
打开txt文本:
PS:我这是升级版本号之后的运行结果,我之前的版本是9.0.16
2、升级版本
Springboot升级内嵌tomcat的方法是在pom.xml中添加<tomcat.version>9.0.37</tomcat.version>
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <tomcat.version>9.0.37</tomcat.version> </properties>
这种方式只是针对Springboot项目。
也可以通过先排除后引入的方式升级:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> <exclusions> <exclusion> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> </exclusion> <exclusion> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> </exclusion> <exclusion> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-websocket</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>9.0.37</version> <scope>compile</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-el</artifactId> <version>9.0.37</version> <scope>compile</scope> <optional>true</optional> </dependency>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。