一种组件漏洞修复方法、装置、设备及介质制造方法及图纸

技术编号:39131146 阅读:8 留言:0更新日期:2023-10-23 14:50
本申请提供了一种组件漏洞修复方法、装置、设备及介质,提取应用的程序代码中存在漏洞的组件的组件代码及调用组件的第一调用代码,从而确定存在漏洞的代码;获取该组件的更新组件代码及更新后的调用组件的第二调用代码,也就是更新的代码;对存在漏洞的代码与更新的代码进行对比,根据对比得到的变化信息对存在漏洞的代码进行修正,进而生成目标程序代码,从而提高了组件漏洞修复的效率和成功率。从而提高了组件漏洞修复的效率和成功率。从而提高了组件漏洞修复的效率和成功率。

【技术实现步骤摘要】
一种组件漏洞修复方法、装置、设备及介质


[0001]本申请涉及应用安全
,尤其涉及一种组件漏洞修复方法、装置、设备及介质。

技术介绍

[0002]在对应用进行软件开发过程中,开发人员经常会用到第三方的组件,随着组件的使用率越来越高,组件的安全性也需要得到重视。图1a为现有技术提供的一种针对组件漏洞的修复过程示意图。如图1a所示,该修复过程包括:获取组件的漏洞信息,根据组件的漏洞信息获取组件的漏洞补丁包。先对组件进行版本升级,并进行文件编译构建,再判断编译构建是否成功。若是,则结束操作。但由于版本升级后的组件可能与文件源代码不兼容,导致编译构建失败,则需要人工根据漏洞补丁包进行打补丁操作,进而完成组件漏洞的修复。这种方式效率较低,消耗时间长。
[0003]因此,亟需一种组件漏洞修复方法提高组件漏洞修复的效率和成功率。

技术实现思路

[0004]本申请提供了一种漏洞修复方法、装置、设备及介质,用于提高组件漏洞修复的效率和成功率。
[0005]第一方面,本申请提供了一种组件漏洞修复方法,所述方法包括:
[0006]提取应用的程序代码中存在漏洞的组件的组件代码及调用所述组件的第一调用代码;获取所述组件的更新组件代码及更新后的调用所述组件的第二调用代码;
[0007]根据所述组件代码和所述第一调用代码,以及所述更新组件代码和所述第二调用代码,生成目标程序代码。
[0008]在一种可能的实施方式中,所述提取应用的程序代码中存在漏洞的组件的组件代码及调用所述组件的第一调用代码包括:
[0009]根据所述程序代码,生成抽象语法树AST;
[0010]确定所述AST中所述组件的节点以及所述节点的连接节点;根据所述连接节点确定调用所述组件的所述第一调用代码。
[0011]在一种可能的实施方式中,所述根据所述程序代码,所述组件代码和所述第一调用代码,以及所述更新组件代码和所述第二调用代码,生成目标程序代码包括:
[0012]对比所述组件代码和所述第一调用代码,与所述更新组件代码和所述第二调用代码,得到代码的变化信息;
[0013]根据所述组件代码和所述第一调用代码以及所述变化信息,生成目标程序代码。
[0014]在一种可能的实施方式中,所述根据所述组件代码和所述第一调用代码以及所述变化信息,生成目标程序代码包括:
[0015]根据所述组件代码和所述第一调用代码中包含的每个词,及预设的词与标识的对应关系,确定每个词对应的标识,得到所述组件代码和所述第一调用代码对应的标识向量;
[0016]根据所述变化信息中包含的每个词,及预设的词与标识的对应关系,确定每个词对应的标识,得到所述变化信息对应的变化词向量;
[0017]根据变化词向量中包含的标识对标识向量中对应标识的内容进行替换;
[0018]根据替换后的标识向量及预设的词与标识的对应关系,得到目标程序代码。
[0019]在一种可能的实施方式中,所述方法还包括:
[0020]模拟运行所述目标程序代码,若运行失败,则提取报错信息,其中所述报错信息中包含运行错误的代码所在的位置以及错误的内容;
[0021]根据所述报错信息中包含的每个词,及预设的词与标识的对应关系,确定所述报错信息对应的报错词向量;
[0022]根据所述报错词向量中包含的行对应的标识,确定替换后的标识向量中对应的位置,并根据所述报错词向量中包含的错误的内容对应标识,对该位置的内容进行替换,得到修正后的标识向量;
[0023]根据所述修正后的标识向量及预设的词与标识的对应关系,得到修正后的目标程序代码。
[0024]第二方面,本申请提供了一种组件漏洞修复装置,所述装置包括:
[0025]提取模块,提取应用的程序代码中存在漏洞的组件的组件代码及调用所述组件的第一调用代码;获取所述组件的更新组件代码及更新后的调用所述组件的第二调用代码;
[0026]生成模块,用于根据所述组件代码和所述第一调用代码,以及所述更新组件代码和所述第二调用代码,生成目标程序代码。
[0027]在一种可能的实施方式中,所述提取模块,具体用于根据所述程序代码,生成抽象语法树AST;确定所述AST中所述组件的节点以及所述节点的连接节点;根据所述连接节点确定调用所述组件的所述第一调用代码。
[0028]在一种可能的实施方式中,所述生成模块,具体用于对比所述组件代码和所述第一调用代码,与所述更新组件代码和所述第二调用代码,得到代码的变化信息;根据所述组件代码和所述第一调用代码以及所述变化信息,生成目标程序代码。
[0029]在一种可能的实施方式中,所述生成模块,具体用于对比所述组件代码和所述第一调用代码,与所述更新组件代码和所述第二调用代码,得到代码的变化信息;根据所述组件代码和所述第一调用代码以及所述变化信息,生成目标程序代码。
[0030]在一种可能的实施方式中,所述生成模块,具体用于根据所述组件代码和所述第一调用代码中包含的每个词,及预设的词与标识的对应关系,确定每个词对应的标识,得到所述组件代码和所述第一调用代码对应的标识向量;根据所述变化信息中包含的每个词,及预设的词与标识的对应关系,确定每个词对应的标识,得到所述变化信息对应的变化词向量;根据变化词向量中包含的标识对标识向量中对应标识的内容进行替换;根据替换后的标识向量及预设的词与标识的对应关系,得到目标程序代码。
[0031]在一种可能的实施方式中,所述生成模块,还用于模拟运行所述目标程序代码,若运行失败,则提取报错信息,其中所述报错信息中包含运行错误的代码所在的位置以及错误的内容;根据所述报错信息中包含的每个词,及预设的词与标识的对应关系,确定所述报错信息对应的报错词向量;根据所述报错词向量中包含的行对应的标识,确定替换后的标识向量中对应的位置,并根据所述报错词向量中包含的错误的内容对应标识,对该位置的
内容进行替换,得到修正后的标识向量;根据所述修正后的标识向量及预设的词与标识的对应关系,得到修正后的目标程序代码。
[0032]第三方面,本申请提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如上述任一所述方法的步骤。
[0033]第四方面,本申请还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一所述方法的步骤。
[0034]在本申请实施例中,提取应用的程序代码中存在漏洞的组件的组件代码及调用组件的第一调用代码,从而确定存在漏洞的代码;获取该组件的更新组件代码及更新后的调用组件的第二调用代码,也就是更新的代码;对存在漏洞的代码与更新的代码进行对比,根据对比得到的变化信息对存在漏洞的代码进行修正,进而生成目标程序代码,从而提高了组件漏洞修复的效率和成功率。
附图说明
[0035]为了更清楚地说明本申请实施例或相关技术中的实施方式,下面将对实施例或相关技本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种组件漏洞修复方法,其特征在于,所述方法包括:提取应用的程序代码中存在漏洞的组件的组件代码及调用所述组件的第一调用代码;获取所述组件的更新组件代码及更新后的调用所述组件的第二调用代码;根据所述组件代码和所述第一调用代码,以及所述更新组件代码和所述第二调用代码,生成目标程序代码。2.根据权利要求1所述的方法,其特征在于,所述提取应用的程序代码中存在漏洞的组件的组件代码及调用所述组件的第一调用代码包括:根据所述程序代码,生成抽象语法树AST;确定所述AST中所述组件的节点以及所述节点的连接节点;根据所述连接节点确定调用所述组件的所述第一调用代码。3.根据权利要求1所述的方法,其特征在于,所述根据所述程序代码,所述组件代码和所述第一调用代码,以及所述更新组件代码和所述第二调用代码,生成目标程序代码包括:对比所述组件代码和所述第一调用代码,与所述更新组件代码和所述第二调用代码,得到代码的变化信息;根据所述组件代码和所述第一调用代码以及所述变化信息,生成目标程序代码。4.根据权利要求3所述的方法,其特征在于,所述根据所述组件代码和所述第一调用代码以及所述变化信息,生成目标程序代码包括:根据所述组件代码和所述第一调用代码中包含的每个词,及预设的词与标识的对应关系,确定每个词对应的标识,得到所述组件代码和所述第一调用代码对应的标识向量;根据所述变化信息中包含的每个词,及预设的词与标识的对应关系,确定每个词对应的标识,得到所述变化信息对应的变化词向量;根据变化词向量中包含的标识对标识向量中对应标识的内容进行替换;根据替换后的标识向量及预设的词与标识的对应关系,得到目标程序代码。5.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:模拟运行所述目标程序代码,若运行失败,则提取报错信息,其中...

【专利技术属性】
技术研发人员:闫保奇呼博文徐浩
申请(专利权)人:中国电信股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1