【技术实现步骤摘要】
分析开源组件各版本间兼容性的方法、装置、设备及介质
[0001]本专利技术涉及组件兼容性分析
,尤其涉及一种分析开源组件各版本间兼容性的方法
、
装置
、
设备及介质
。
技术介绍
[0002]在开源组件成为全球趋势的今天,开源组件的升级不可避免,由于升级框架和组件往往会导致兼容性的问题以及安全性问题,针对开源组件各版本间是否存在兼容性问题成为亟待解决的问题
。
[0003]目前
SCA(
软件成分分析
)
产品均可以识别出项目中存在的开源组件漏洞,其修复建议大部分都是推荐升级版本,然而却缺乏对升级版本与当前版本之间兼容性的判断,或只能简单的根据版本号差异
(
如是否跨越大版本
1.0.12.0.1
即跨大版本
)
来判断兼容性,无法做到
API(Application Programming Interface,
应用程序编程接口
)
和依赖级别的兼容性判断,导致开源组件版本间兼容性的判断不够全面
。
技术实现思路
[0004]本专利技术提供一种分析开源组件各版本间兼容性的方法
、
装置
、
设备及介质,其主要目的在于解决开源组件不同版本间兼容性分析时全面性较差的问题
。
[0005]为实现上述目的,本专利技术提供的一种分析开源组件各版本间兼容性的方法,包括:获取预构建的开 ...
【技术保护点】
【技术特征摘要】
1.
一种分析开源组件各版本间兼容性的方法,其特征在于,所述方法包括:获取预构建的开源组件的源码知识库,从所述源码知识库中提取所述开源组件的不同版本组件的目标源码文件;对所述目标源码文件进行版本解析,得到所述不同版本组件的版本依赖信息以及所述不同版本组件对应的程序接口方法;根据所述版本依赖信息以及所述程序接口方法构建所述不同版本组件的兼容版本表;对所述兼容版本表中的兼容信息进行一致性校验,根据所述一致性校验的结果确定所述不同版本组件之间的兼容性结果
。2.
如权利要求1所述的分析开源组件各版本间兼容性的方法,其特征在于,所述从所述源码知识库中提取所述开源组件的不同版本组件的目标源码文件,包括:根据所述开源组件确定所述不同版本组件的组件唯一标识;根据所述组件唯一标识从所述源码知识库中提取所述不同版本组件对应的目标源码文件
。3.
如权利要求1所述的分析开源组件各版本间兼容性的方法,其特征在于,所述对所述目标源码文件进行版本解析,得到所述不同版本组件的版本依赖信息以及所述不同版本组件对应的程序接口方法,包括:利用预设的依赖函数解析所述目标源码文件对应的依赖信息,根据所述依赖信息确定所述不同版本组件的版本依赖信息;将所述目标源码文件中的代码转换为抽象语法树,遍历所述抽象语法树,得到所述不同版本组件的程序接口方法
。4.
如权利要求3所述的分析开源组件各版本间兼容性的方法,其特征在于,所述遍历所述抽象语法树,得到所述不同版本组件的程序接口方法,包括:利用预设的解析规则遍历所述抽象语法树每个层级的节点,得到所述抽象语法树的语法元素;对所述语法元素进行方法识别,得到所述不同版本组件的程序接口方法
。5.
如权利要求1所述的分析开源组件各版本间兼容性的方法,其特征在于,所述根据所述版本依赖信息以及所述程序接口方法构建所述不同版本组件的兼容版本表,包括:根据所述版本依赖信息以及所述程序接口方法构建所述不同版本组件的组件表;查找每个所述版本组件的所述版本依赖信息以及所述程序接口方法在所述组件表中的列表序列;根据所述列表序...
【专利技术属性】
技术研发人员:朱良文,万振华,王颉,李华,董燕,汪杰,
申请(专利权)人:深圳开源互联网安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。