代码检测方法、装置、电子设备和存储介质制造方法及图纸

技术编号:36785875 阅读:10 留言:0更新日期:2023-03-08 22:28
本申请实施例提供代码检测方法、装置、电子设备和存储介质代码检测方法、装置、电子设备和存储介质,其中,代码检测方法包括:部署多个代码检测工具;接收检测任务;根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到检测结果。实施上述实施例,能够实现对代码的定制化检测。能够实现对代码的定制化检测。能够实现对代码的定制化检测。

【技术实现步骤摘要】
代码检测方法、装置、电子设备和存储介质


[0001]本申请涉及代码测试
,具体而言,涉及代码检测方法、装置、电子设备和存储介质。

技术介绍

[0002]静态代码检查是由具备丰富编码经验并对安全编码原则及应用安全具有深刻理解的安全服务人员对系统的源代码和软件架构的安全性、可靠性进行全面的安全检查。从而让开发人员了解其开发的应用系统可能会面临的威胁,并指导开发人员正确修复程序缺陷。
[0003]现有的静态代码检测方法包括:基于二进制代码的模式匹配对二进制代码的模式匹配是最早被采用的静态分析方法;基于二进制代码的模式匹配对二进制代码的模式匹配是最早被采用的静态分析方法;基于编译中间代码的分析。现有技术通常都是采用一种静态代码检测工具来对静态代码进行检测,所得到的数据比较单一,对代码的分析不够全面。

技术实现思路

[0004]有鉴于此,本申请实施例的目的在于提供代码检测方法、装置、电子设备和存储介质,能够对代码实现全面检测。
[0005]第一方面,本申请实施例提供了一种方法,包括:
[0006]部署多个代码检测工具;
[0007]接收检测任务;
[0008]根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到检测结果。
[0009]在上述实现过程中,一次性部署多个代码检测工具,利用多个代码检测工具对代码进行检测,实现了对代码的全面检测。通过接收检测任务,根据检测任务驱动多个代码检测工具中的至少一个检测代码对代码进行检测,能够实现对代码的定制化检测。
[0010]进一步地,所述根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到检测结果的步骤,包括:
[0011]根据所述检测任务生成所述至少一个代码检测工具的运行命令行;
[0012]运行所述运行命令行,驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到所述检测结果。
[0013]在上述实现过程中,将检测任务转换为运行命令行,通过命令行驱动代码检测工具,实现了驱动方式的统一。
[0014]进一步地,所述根据所述检测任务生成所述至少一个代码检测工具的运行命令行的步骤之前,包括:
[0015]获取所述多个代码检测工具的运行命令;
[0016]将所述运行命令中的配置参数替换为通配符,得到标准运行命令;
[0017]所述根据所述检测任务生成所述至少一个代码检测工具的运行命令行的步骤,包括:
[0018]根据所述检测任务生成配置信息;
[0019]将所述配置信息替换所述标准运行命令中的通配符,得到所述至少一个代码检测工具的运行命令行。
[0020]在上述实现过程中,提供了一种将得检测任务转换为运行命令行的方法。每个代码检测工具具有对应的运行命令,标准运行命令中包括配置参数,配置参数用于控制代码检测工具的具体执行方式,执行对象,通过利用通配符替换配置参数,能够实现基于检测任务生成对应的运行命令行,从而实现对代码的定制化检测。
[0021]进一步地,所述根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测的步骤,包括:
[0022]获取所述至少一个代码检测工具对应的进程状态;
[0023]当所述进程状态为停止中且持续时间超过预设阈值时,在所述进程对应的存储区获取所述检测结果,终止所述进程。
[0024]在上述实现过程中,由于涉及到多个代码检测工具的运行,因此,对所述至少一个代码检测工具对应的进程状态进行监控,当所述进程状态为停止中时,有可能是正常终止,当进程状态为停止中且持续时间超过预设阈值时,说明此时对应的代码检测可能发生异常或运行错误,直接在进程对应存储区获取检测结果,然后直接终止进程。基于上述实施方式,能够及时释放掉进程占用的资源,也能够保证检测结果不被丢弃。
[0025]进一步地,所述代码检测任务包括所述至少一个代码检测工具的执行顺序;
[0026]所述根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测的步骤,得到检测结果的步骤,包括:
[0027]根据所述执行顺序驱动所述至少一个代码检测工具进行代码检测,依次得到所述至少一个代码检测工具的检测结果;
[0028]响应于每个所述检测结果的生成信号,判断所述检测结果是否符合预设条件,若否,停止驱动所述多个代码检测工具。
[0029]在上述实现过程中,考虑到有时不需要利用全部检测工具进行代码检测,并且有的时候如果单一的检测工具检测到代码的记过对应的缺陷数据过多,则直接对代码进行修复,不再进行代码检测,因此,提出了检测任务中包括至少一个代码检测工具的检测顺序,如果一个代码检测报告中的检测结果不符合预设条件,则终止检测流程。基于上述实施方式,能够节省检测时间,提高检测效率。
[0030]进一步地,所述检测结果包括:所述至少一个代码检测工具的检测报告;
[0031]所述得到检测结果之后,还包括:
[0032]将所述至少一个代码检测工具的检测报告转换为通用报告。
[0033]在上述实现过程中,每个检测工具具有对应的检测报告,不同的检测报告具有其对应报告格式,为了提高运维人员以及开发人员的工作效率,将所述至少一个代码检测工具的检测报告转换为通用报告。
[0034]进一步地,所述将所述至少一个代码检测工具的检测报告转换为通用报告的步骤之前,包括:
[0035]建立通用报告模板;
[0036]获取每个代码检测工具的检测报告的标签和所述通用报告模板中的标签的映射关系;
[0037]所述将所述至少一个代码检测工具的检测报告转换为通用报告的步骤,包括:
[0038]根据所述映射关系将所述至少一个代码检测工具的检测报告中的标签的属性数据添加到所述通用报告模板的标签中,得到所述通用报告。
[0039]在上述实现过程中,每个代码检测工具的检测报告都是基于标签的语言进行描述的,因此,为了将多个代码检测工具的检测报告转换为通用的检测报告,可以预先建立通用报告模板,获取每个代码检测工具的检测报告的标签和所述通用报告模板中的标签的映射关系,在获取到多个代码检测工具的报告之后,根据所述映射关系将所述至少一个代码检测工具的检测报告中的标签的属性数据添加到所述通用报告模板的标签中,得到所述通用报告。
[0040]第二方面,本申请实施例提供了一种代码检测装置,包括:
[0041]部署模块,用于部署多个代码检测工具;
[0042]接收模块,用于接收检测任务;
[0043]检测模块,用于根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到检测结果。
[0044]第三方面,本申请实施例提供的一种电子设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码检测方法,其特征在于,包括:部署多个代码检测工具;接收检测任务;根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到检测结果。2.根据权利要求1所述的代码检测方法,其特征在于,所述根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到检测结果的步骤,包括:根据所述检测任务生成所述至少一个代码检测工具的运行命令行;运行所述运行命令行,驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测,得到所述检测结果。3.根据权利要求2所述的代码检测方法,其特征在于,所述根据所述检测任务生成所述至少一个代码检测工具的运行命令行的步骤之前,包括:获取所述多个代码检测工具的运行命令;将所述运行命令中的配置参数替换为通配符,得到标准运行命令;所述根据所述检测任务生成所述至少一个代码检测工具的运行命令行的步骤,包括:根据所述检测任务生成配置信息;将所述配置信息替换所述标准运行命令中的通配符,得到所述至少一个代码检测工具的运行命令行。4.根据权利要求1所述的代码检测方法,其特征在于,所述根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测的步骤,包括:获取所述至少一个代码检测工具的进程状态;当所述进程状态为停止中且持续时间超过预设阈值时,在所述进程对应的存储区获取所述检测结果,终止所述进程。5.根据权利要求1所述的代码检测方法,其特征在于,所述检测任务包括所述至少一个代码检测工具的执行顺序;所述根据所述检测任务驱动所述多个代码检测工具中的至少一个代码检测工具进行代码检测的步骤,得到检测结果的步骤,包括:根据所述执行顺...

【专利技术属性】
技术研发人员:乔子豪
申请(专利权)人:北京天融信网络安全技术有限公司北京天融信科技有限公司北京天融信软件有限公司
类型:发明
国别省市:

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

1