如何选择较为安全的第三方依赖版本?

如何选择较为安全的第三方依赖版本?

  • 本文概览
    • [1.1 前言](#1.1 前言)
      • [1.1.1 学会看第三方开源库的版本发布说明](#1.1.1 学会看第三方开源库的版本发布说明)
      • [1.1.2 尽可能使用 starer 匹配的第三方开源库](#1.1.2 尽可能使用 starer 匹配的第三方开源库)
      • [1.1.3 参考Maven 中心仓库的安全警告信息](#1.1.3 参考Maven 中心仓库的安全警告信息)

本文概览

本篇博文分享如何选择较为安全的第三方依赖版本的方法。

1.1 前言

众所周知,在Java 研发的过程中,我们一般习惯通过mavengradle 管理项目中的第三方依赖包,以便于辅助我们提高开发业务功能的效率。

而第三方依赖包,往往随着历史的变迁,会迭代很多版本,尤其当某些旧版本的第三方依赖包出现bug或安全漏洞的时候,一般安全部会提醒我们更新我们的第三方依赖包,但是新版本有很多,我们应该选择哪一个版本呢?

1.1.1 学会看第三方开源库的版本发布说明

我们以最近要升级Spring Boot 到2.7.18 为例,假如我们的项目需要更新MyBatis Plus 的版本,那么你应该升级到哪个版本呢?

这里聪哥那边学会的一个很好的方法,就是查看第三方开源库的版本说明,具体步骤如下:

我们一般很容易在网上检索到MyBatis Plus 的代码仓库.

https://github.com/baomidou/mybatis-plus

然后点击上图里面Release 文字下面部分的超链接。

然后就可以看到各个版本的更新说明:

其中有一条,feat: SpringBoot升级至2.7.18和3.2.6

所以,我们选择mybatis plus 3.5.7 是较为合适的选择。

当然,我们也需要升级后对系统进行功能回归测试。

1.1.2 尽可能使用 starer 匹配的第三方开源库

众所周知,spring boot 提供了很多starter,如果使用starer 推荐的第三方开源库的依赖版本,有一个好处就是:spring 团队已经对这些依赖组进行了充分测试,我们可以相对安全地使用这些库。

Spring Boot 与 Spring Cloud 的兼容性说明:https://spring.io/projects/spring-cloud

spring boot 和kafka 之间的版本兼容性说明:https://spring.io/projects/spring-kafka

Spring Boot 版本和其他第三方开源库的兼容性说明:

Spring Boot最新版对其他第三方开源库的依赖兼容关系

Spring Boot 1.5.x 对其他第三方开源库的依赖兼容关系

Spring Boot 2.5.x 对其他第三方开源库的依赖兼容关系

Spring Boot 2.7.x 对其他第三方开源库的依赖兼容关系

PS:

更多升级细节参考:

Spring Boot 3 之SpringBoot 版本升级最佳实践指南

其他版本以官网提供信息为准。

1.1.3 参考Maven 中心仓库的安全警告信息

为了演示使用说明,这里以业界熟知的Guava 为例, 让我们来看看当在项目中引入Guava 这个开源库的时候,应该如何选择一个较为安全的版本。

这里分享一个很棒安全性做的也很不错的中心仓库网站。

https://mvnrepository.com/

打开上面链接后需要经过人机校验

之后我们输入检索依赖的关键词: "guava"

PS:

  • 小伙伴可以今后用这个网址来检索需要的几乎java 领域所有的第三方开源库.当然,公司自己封装的私有包除外。
  • 之后我们可以看到有多个guava 版本并且标记清楚了是否有安全漏洞以及使用这个版本的开源库个数。

当然,不管哪种方式,都需要在选择后,进行充分测试后方可使用,以上就是推荐的一些选择较为安全的第三方依赖版本的策略。

交流即分享,分享才能进步!

相关推荐
2501_915909062 小时前
资源文件混淆在 iOS 应用安全中的实际价值
android·安全·ios·小程序·uni-app·iphone·webview
ShenZhenDingYue2 小时前
高压线防外破警示灯:电力安全与智能预警的守护者
安全
国科安芯2 小时前
AS32A601型MCU芯片如何进行IAP升级?
网络·单片机·嵌入式硬件·安全·risc-v·安全性测试
爱思考的发菜_汽车网络信息安全2 小时前
汽车网络安全:SHA算法详细解析
安全·web安全·汽车
九章-2 小时前
金仓数据库助力中国石油安全环保技术研究院安全生产智能管控系统全面实现数据库国产化替代
数据库·安全
飞飞传输2 小时前
安全隔离网闸厂家怎么选?聚焦核心指标,筑牢网络边界安全防线
大数据·运维·安全
十二月未完2 小时前
FlyEnv 是一款轻量、安全、跨平台的环境变量管理工具
安全
xixixi777772 小时前
安全SDK:无感采集用户在APP内的交互行为(点击速度、滑动轨迹、停留时长),用于后续的行为生物特征分析
安全·microsoft·数据采集·特征·隐私·合规·设备指纹
AdMergeX2 小时前
AdMergeX旗下 Funlink SDK通过中国信通院双端安全专项检验
大数据·人工智能·安全·saas·广告saas·流量变现
艾莉丝努力练剑2 小时前
【Linux进程(四)】深入理解 Linux O(1) 调度器:双队列轮转与进程优先级机制——如何避免进程饥饿,实现公平且高效的进程调度
java·大数据·linux·运维·服务器·人工智能·安全