springboot内嵌Tomcat安全漏洞修复方式

 更新时间:2024年10月08日 09:11:37   作者: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>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java利用CountDownLatch实现并行计算

    java利用CountDownLatch实现并行计算

    这篇文章主要介绍了java利用CountDownLatch实现并行计算,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Spring boot配置多数据源代码实例

    Spring boot配置多数据源代码实例

    这篇文章主要介绍了Spring boot配置多数据源代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Java数据结构之Map与Set专篇讲解

    Java数据结构之Map与Set专篇讲解

    这篇文章通过实例面试题目来讲解Java中Map和Set之间的关系,具有很好的参考价值,Map与Set在面试中经常会遇到。一起跟随小编过来看看吧
    2022-01-01
  • Java 最重要布局管理器GridBagLayout的使用方法

    Java 最重要布局管理器GridBagLayout的使用方法

    GridBagLayout是java里面最重要的布局管理器之一,可以做出很复杂的布局,可以说GridBagLayout是必须要学好的的,需要的朋友可以了解下
    2012-12-12
  • Spring 应用中集成 Apache Shiro的方法

    Spring 应用中集成 Apache Shiro的方法

    这篇文章主要介绍了Spring 应用中集成 Apache Shiro的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Java调用Windows的DOS命令的方法

    Java调用Windows的DOS命令的方法

    这篇文章主要介绍了Java调用Windows的DOS命令的方法,其主要内容思路是实现调用Windows的ipconfig命令,然后将输出的信息通过IO流输出到控制台。有需要的小伙伴参考下
    2015-02-02
  • Spring配置文件使用占位符配置方式

    Spring配置文件使用占位符配置方式

    这篇文章主要介绍了Spring配置文件使用占位符配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Mybatis映射文件规则实例详解

    Mybatis映射文件规则实例详解

    在映射文件当中,mapper元素是映射文件的根元素,其他的标签都是它的子元素,下面这篇文章主要给大家介绍了关于Mybatis映射文件规则的相关资料,需要的朋友可以参考下
    2022-04-04
  • import java和javax区别小结

    import java和javax区别小结

    Java包和javax包在Java编程语言中都起着至关重要的作用,本文就来介绍一下import java和javax区别小结,具有一定的参考价值,感兴趣的可以了解一下
    2024-10-10
  • java实现简单控制台通讯录

    java实现简单控制台通讯录

    这篇文章主要为大家详细介绍了java实现简单控制台通讯录,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论