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. 解决的好处

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

  • 安全性

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

  • 稳定性

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

  • 性能

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

  • 兼容性

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

  • 维护性

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

  • 合规性

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

总结

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

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐