漏洞扫描提示的是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>

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐