本发明涉及数据处理,尤其涉及一种版本应用的分析方法、装置、电子设备及存储介质。
背景技术:
1、软件应用常需要引入一些外部依赖,即开源代码和第三方库。由于开源这样的软件应用中容易存在的大量缺陷、甚至是安全漏洞,为软件带来巨大的安全风险。所以需要对软件应用进行开源分析,以确定软件所使用的外部依赖信息是否规避掉风险。
2、目前,对于没有被持续集成ci/持续部署cd的软件应用,用对接版本控制工具git/svn等代码仓库的方式进行外部依赖的连接,但是此种方式并没有办法明确软件的当前发布版本应用。因此会导致后续无法得知在生产系统运行的版本应用中是否存在安全风险,无法追踪软件针对开源风险的整改过程。
技术实现思路
1、有鉴于此,本发明实施例提供一种版本应用的分析方法、装置、电子设备及存储介质,以解决现有技术中存在的无法追踪软件针对开源风险的整改过程的问题。
2、为实现上述目的,本发明实施例提供如下技术方案:
3、本发明实施例第一方面示出了一种版本应用的分析方法,所述方法包括:
4、接收上线成功的软件应用的版本基础信息;
5、基于所述版本基础信息获取所述软件应用的基线代码文件;
6、对所述基线代码文件进行分析,得到对应的分析结果;
7、基于所述分析结果、目标组件的名称、以及版本应用的软件名称生成开源资产清单,以便后续用户查询。
8、可选的,所述对所述基线代码文件进行分析,得到对应的分析结果,包括:
9、对所述基线代码文件进行分析,确定构建所述软件应用的初始组件;
10、从所述基线代码文件中确定每一初始组件的调用信息;
11、基于所述每一初始组件的调用信息和所述初始组件构建依赖树;
12、基于所述初始组件,确定满足预设条件的目标组件;
13、基于所述依赖树对所述目标组件进行分析,得到分析结果。
14、可选的,所述基于所述每一初始组件的调用信息和所述初始组件构建依赖树,包括:
15、基于所述每一初始组件的调用信息,从所述初始组件中确定作为依赖树的根节点的第一组件,并标记;
16、基于所述每一初始组件的调用信息,从剩余的初始组件中确定与所述第一组件连接的第二组件,并标记;
17、若确定存在未被标记的所述初始组件,基于所述每一初始组件的调用信息,从未被标记的初始组件中确定与所述标记的初始组件连接的第三组件;
18、若确定存在均被标记的所述初始组件,基于第一组件、第二组件和/或与所述标记的初始组件连接的初始组件构建依赖树。
19、可选的,还包括:
20、在接收上线成功的软件应用的版本基础信息之前,触发上线成功的软件应用的接收任务。
21、可选的,还包括:
22、若确定所述版本应用存在历史版本的标记,将所述版本号对应的开源资产清单与所述版本应用的历史述版本号对应的开源资产清单组合生成所述软件应用的开源组件列表。
23、本发明实施例第二方面示出了一种版本应用的分析装置,所述装置包括:
24、获取单元,用于接收上线成功的软件应用的版本基础信息;基于所述版本基础信息获取所述软件应用的基线代码文件;
25、处理单元,用于对所述基线代码文件进行分析,得到对应的分析结果;
26、生成单元,用于基于所述分析结果、目标组件的名称、以及版本应用的软件名称生成开源资产清单,以便后续用户查询。
27、可选的,所述处理单元,包括第一分析子单元、构建子单元、确定子单元和第二分析子单元;
28、所述第一分析子单元,用于对所述基线代码文件进行分析,确定构建所述软件应用的初始组件;
29、所述构建子单元,用于从所述基线代码文件中确定每一初始组件的调用信息;基于所述每一初始组件的调用信息和所述初始组件构建依赖树;
30、所述确定子单元,用于基于所述初始组件,确定满足预设条件的目标组件;
31、所述第二分析子单元,用于基于所述依赖树对所述目标组件进行分析,得到分析结果。
32、可选的,还包括:
33、触发单元,用于在接收上线成功的软件应用的版本基础信息之前,触发上线成功的软件应用的接收任务。
34、本发明实施例第三方面示出了一种电子设备,所述电子设备用于运行程序,其中,所述程序运行时执行如本发明实施例第一方面示出的版本应用的分析方法。
35、本发明实施例第四方面示出了一种存储介质,所述存储介质包括存储程序,其中,在所述程序运行时控制所述存储介质所在设备执行如本发明实施例第一方面示出的版本应用的分析方法。
36、基于上述本发明实施例提供的一种版本应用的分析方法、装置、电子设备及存储介质,所述方法包括:接收上线成功的软件应用的版本基础信息;基于所述版本基础信息获取所述软件应用的基线代码文件;对所述基线代码文件进行分析,得到对应的分析结果;基于所述分析结果、目标组件的名称、以及版本应用的软件名称生成开源资产清单,以便后续用户查询。在本发明实施例中,通过对软件应用的版本号所对应的基线代码文件进行分析处理,以生成由初始组件构建的依赖树;进而确定由目标组件、目标组件之间的分析结果以及软件应用的版本号组成分析结果,以生成对应的开源资产清单。通过上述方式得到的开源资产清单能够追踪软件针对开源风险的整改过程。
1.一种版本应用的分析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对所述基线代码文件进行分析,得到对应的分析结果,包括:
3.根据权利要求2所述方法,其特征在于,所述基于所述每一初始组件的调用信息和所述初始组件构建依赖树,包括:
4.根据权利要求1所述的方法,其特征在于,还包括:
5.根据权利要求1所述的方法,其特征在于,还包括:
6.一种版本应用的分析装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述处理单元,包括第一分析子单元、构建子单元、确定子单元和第二分析子单元;
8.根据权利要求6所述的装置,其特征在于,还包括:
9.一种电子设备,其特征在于,所述电子设备用于运行程序,其中,所述程序运行时执行如权利要求1-5中任一所述的版本应用的分析方法。
10.一种存储介质,其特征在于,所述存储介质包括存储程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1-5中任一所述的版本应用的分析方法。