IntelliJ IDEA [警告] pom的依赖中出现警告Provides transitive vulnerable dependency

news2025/4/24 5:48:38

文章目录

    • 1. 现象
    • 2. 为什么出现警告
    • 3. 如何对待呢
    • 4. 解决
    • 5. 解决的好处
    • 总结

1. 现象

在我们的工程 pom.xml 中的依赖中,所依赖的 spring-boot-starter-web 出现了警告。

依赖内容

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

警告

在这里插入图片描述

2. 为什么出现警告

那么我们就需要来分析一下,警告的详细信息中到底它说了些什么?

警告详细信息

Provides transitive vulnerable dependency maven:ch.qos.logback:logback-classic:1.4.11
CVE-2023-6378 7.5 Deserialization of Untrusted Data vulnerability with High severity found
Results powered by Checkmarx(c)

这段警告信息中提到了一个潜在的安全漏洞,涉及到 Maven 项目中的 ch.qos.logback:logback-classic 库的版本1.4.11。具体来说,该漏洞被标记为 CVE-2023-6378,属于反序列化未受信任数据的漏洞,严重程度为高(High severity,评级为7.5)。

这种类型的漏洞通常指的是应用程序在处理来自外部不受信任源的数据时存在问题,攻击者可能通过构造特殊的输入来触发反序列化操作,从而导致安全风险。在这种情况下,可能存在潜在的远程代码执行或其他恶意操作的风险。

3. 如何对待呢

此时你可能需要考虑升级到一个修复了这个漏洞的版本,或者采取其他适当的措施以缓解潜在的风险。检查Maven仓库或logback项目的官方文档以获取更多详细信息和修复建议。

4. 解决

检查是否有该库的新版本已经发布,其中修复了 CVE-2023-6378。在你的 Maven 项目中,可以通过更新 pom.xml 文件中相关依赖项的版本来实现。

我们去查一下最新版本

※ 如果不知道如何查询 Maven 依赖的最新版本,可以参考

在这里插入图片描述

我们本地是 1.4.11 它是在 1.4.12 版本中做了修复。现在最新版本已经是 1.4.14 ,我们知道版本号中的最后一位通常都是去修复 BUG 的,因此我们直接升级即可。

修改本地 pom.xml , 将从网站中拷贝出来的这段依赖添加或者修改我们的 pom.xml 文件。

		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.4.14</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.4.14</version>
		</dependency>

警告就消除了

在这里插入图片描述

5. 解决的好处

解决项目中的警告或安全漏洞是为了确保项目的稳定性、安全性和可维护性

  • 安全性

    安全漏洞可能被恶意用户或攻击者利用,导致潜在的安全风险。解决安全漏洞可以防止不法分子利用这些漏洞对你的应用程序进行攻击,例如远程执行代码、拒绝服务攻击等

  • 稳定性

    更新依赖项可以解决已知的错误或不稳定的行为,从而提高项目的稳定性。新版本通常包含改进和修复,使得应用程序更加可靠

  • 性能

    一些库版本可能包含性能改进,升级到这些版本可能会提高应用程序的性能。此外,解决依赖冲突和使用最新的库版本也有助于减少潜在的性能问题

  • 兼容性

    保持依赖项和第三方库的最新版本有助于确保项目与其他库和框架的兼容性。这对于将来升级或集成新功能时是至关重要的

  • 维护性

    使用最新的库版本和解决警告可以使代码更加清晰、易读,并且有助于降低维护成本。过时的库版本和存在问题的代码可能会导致困扰,增加维护的难度

  • 合规性

    某些行业和法规标准要求保持应用程序的安全性,并定期修复已知的安全漏洞。解决这些问题有助于确保项目符合相关的合规性标准

总结

总体而言,解决项目中的警告和安全漏洞是一项重要的实践,有助于提高软件的质量、安全性和可维护性。在开发过程中定期审查和更新依赖项是一个良好的实践,以确保项目能够从最新的改进和修复中受益。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1345686.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手拉手Springboot获取yml配置文件信息

环境介绍 技术栈 springboot3 软件 版本 mysql 8 IDEA IntelliJ IDEA 2022.2.1 JDK 17 Spring Boot 3.1.7 配置文件说明&#xff1a;启动配置文件优先级&#xff1a;properties高于yml 配置文件application.yml yml是 JSON 的超集&#xff0c;简洁而强大&#xf…

如何在TypeScript中定义未知结构的对象类型?

一个大多数人在学习TypeScript时都会遇到的问题&#xff0c;你能想到多少解决方案呢? 你在学习TypeScript时遇到过类似的错误吗? 要解决这个错误&#xff0c;一个非常暴力的方法是使用 any 类型: let user: any {}user.id "TS001";user.name "Bytefer&quo…

Vue 框架前导:详解 Ajax

Ajax Ajax 是异步的 JavaScript 和 XML。简单来说就是使用 XMLHttpRequest 对象和服务器通信。可以使用 JSON、XML、HTML 和 text 文本格式来发送和接收数据。具有异步的特性&#xff0c;可在不刷新页面的情况下实现和服务器的通信&#xff0c;交换数据或者更新页面 01. 体验 A…

计算机毕业设计 基于HTML5+CSS3的在线英语阅读分级平台的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

【UE5蓝图】读取本地json文件修改窗口大小

效果 插件 蓝图 1.判断文件存在 2.1文件不存在&#xff0c;生成文件 {"ResolutionX":540, "ResolutionY":960} 2.2文件存在&#xff0c;直接读取 3.设置窗口大小 遇到的坑 1.分辨率太大&#xff0c;导致效果不理想&#xff0c;建议先往小填写。 2.选对…

Oracle VirtualBox中Linux系统基本使用方法——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项

前言 小北的这篇博客介绍的是关于用VirtualBox中下载好的ubuntu系统中&#xff0c;为搭建Hadoop平台所做的命令操作准备&#xff0c;希望能帮助不会的人有指引作用。 没有安装好VirtualBox中的ubuntu系统以及创建Hadoop账户的请参考小北之前的三篇博客&#xff1a; ubuntu18…

40道MyBatis面试题带答案(很全)

1. 什么是MyBatis &#xff08;1&#xff09;Mybatis是一个半ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;它内部封装了JDBC&#xff0c;开发时只需要关注SQL语句本身&#xff0c;不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。程序员直接…

Git:远程仓库的使用

查看当前的远程库 要查看当前配置有哪些远程仓库&#xff0c;可以用git remote 命令&#xff0c;它会列出每个远程库的简短名字。在克隆完某个项目后&#xff0c;至少可以看到一个名为origin 的远程库&#xff0c;Git 默认使用这个名字来标识你所克隆的原始仓库&#xff1a; 也…

命令模式-实例使用

未使用命令模式的UML 使用命令模式后的UML public abstract class Command {public abstract void execute(); }public class Invoker {private Command command;/*** 为功能键注入命令* param command*/public void setCommand(Command command) {this.command command;}/***…

分布式系统架构设计之分布式数据存储的分类和组合策略

在现下科技发展迅猛的背景下&#xff0c;分布式系统已经成为许多大规模应用和服务的基础架构。分布式架构的设计不仅仅是一项技术挑战&#xff0c;更是对数据存储、管理和处理能力的严峻考验。随着云原生、大数据、人工智能等技术的崛起&#xff0c;分布式系统对于数据的高效存…

SpringBoot 增量/瘦身部署jar 包

背景 SpringBoot 项目的部署一般采用全量jar 包方式部署相关项目&#xff0c;如果我们对相关的Contrller\Service\Dao\Mapper 层进行相关业务调整就需要重新编译全量jar 包&#xff08;包大小约为200M左右&#xff09;实在太麻烦了。 本文:重点讲解使用SpringBoot 的增量/瘦身…

pytorch05:卷积、池化、激活

目录 一、卷积1.1 卷积的概念1.2 卷积可视化1.3 卷积的维度1.4 nn.Conv2d1.4.1 无padding 无stride卷积1.4.2 无padding stride2卷积1.4.3 padding2的卷积1.4.4 空洞卷积1.4.5 分组卷积 1.5 卷积输出尺寸计算1.6 卷积的维度1.7 转置卷积1.7.1 为什么被称为转置卷积1.7.2 nn.Con…

React Hooks 面试题 | 08.精选React Hooks面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

git回滚操作,常用场景

文章目录 git回滚操作1.git reset --hard 【版本号】2.回滚后的版本v2又想回到之前的版本v32.1 git reflog 3.git checkout -- 文件名4.git reset HEAD 文件名 git回滚操作 假设我们现在有三个版本 现在回滚一个版本 1.git reset --hard 【版本号】 发现只剩下两个版本了 2.…

html文件Js写输入框和弹框调接口jQuery

业务场景&#xff1a;需要使用写一个html文件&#xff0c;实现输入数字&#xff0c;保存调接口。 1、使用 JS原生写法&#xff0c; fetchAPI调接口&#xff0c;使用 alert 方法弹框会阻塞线程&#xff0c;所以写了一个弹框。 <!DOCTYPE html> <html lang"en"…

SpringMVC源码解析——DispatcherServlet初始化

在Spring中&#xff0c;ContextLoaderListener只是辅助功能&#xff0c;用于创建WebApplicationContext类型的实例&#xff0c;而真正的逻辑实现其实是在DispatcherServlet中进行的&#xff0c;DispatcherServlet是实现Servlet接口的实现类。Servlet是一个JAVA编写的程序&#…

机器学习(二) -- 数据预处理(3)

系列文章目录 机器学习&#xff08;一&#xff09; -- 概述 机器学习&#xff08;二&#xff09; -- 数据预处理&#xff08;1-3&#xff09; 未完待续…… 目录 前言 tips&#xff1a;这里只是总结&#xff0c;不是教程哈。本章开始会用到numpy&#xff0c;pandas以及matpl…

DFS BFS

用DFS和BFS分别实现 //这边给出DFS的模版 void dfs(int x,int y) {//判断是否到达终点&#xff08;只有给出结束点的时候需要&#xff09; if (x ex && y ey) {if (min_steps > step) {min_steps step;}return;}//给出移动方向int move[4][2] {{0, 1}, {0, -1}…

如何使用python脚本生成redis格式的数据包

用python脚本生成redis格式的数据包 &#xff08;1&#xff09;使用下述网站下载开源的生成gopher协议规则的包的工具 https://github.com/firebroo/sec_tools/tree/master/redis-over-gopher &#xff08;2&#xff09;首先要修改redis.cmd中的内容 flushall config set di…

Linux 运维工具之1Panel

一、1Panel 简介 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。 特点&#xff1a; 快速建站&#xff1a;深度集成 Wordpress 和 Halo&#xff0c;域名绑定、SSL 证书配置等一键搞定&#xff1b;高效管理&#xff1a;通过 Web 端轻松管理 Linux 服务器&#xff0…