本申请涉及代码安全,具体而言,涉及一种代码审计的方法、存储介质、电子设备及产品。
背景技术:
1、随着软件开发技术的快速发展,软件的规模和复杂性日益增加。在此背景下源代码的质量和安全性在软件开发和维护过程中显得尤为重要。尽管开发团队普遍遵循一定的编码规范,但若缺失了系统的代码审查流程,随着时间推移,代码的一致性和质量会逐渐下滑。
2、目前,在对代码进行审计的方案中,通常通过在相邻两次发布的代码版本的基础上进行源代码审计,但是由于时间跨度较长,源代码变更范围广,审计人员需要处理的新增或修改代码量大幅增加,从而显著增加了单次审计的工作量。并且在源代码审计工作完成后,大量的问题分布在多个模块或功能中,使得问题的修改和验证过程变得更加复杂和耗时,延长了修改周期,进而提高了项目的维护成本。
3、因此,如何提供一种高效的代码审计的方法的技术方案成为亟需解决的技术问题。
技术实现思路
1、本申请的一些实施例的目的在于提供一种代码审计的方法、存储介质、电子设备及产品,通过本申请的实施例的技术方案可以提升源代码审计的效率和质量,降低维护成本和人工审计的工作量。
2、第一方面,本申请的一些实施例提供了一种代码审计的方法,包括:确认本次提交的待审计代码信息需要审计的情况下,对所述待审计代码信息中的源代码进行审计,得到第一审计结果;将所述待审计代码信息中的本次修订版本号与预设修订版本号对应的修订版本进行对比,生成差异数据,其中,所述差异数据包括:含有所述第一审计结果的差异代码、补丁文件和路由地址;获取所述差异数据被人工审计后的第二审计结果;至少基于所述第一审计结果和所述第二审计结果,生成所述待审计代码信息的代码审计报告。
3、本申请的一些实施例通过确认待审计代码信息需要审计的前提下,对源代码进行审计得到第一审计结果,接着确定本次修订版本号与预设修订版本号间的差异数据并进行人工审计得到第二审计结果,最后至少基于第一审计结果和第二审计结果生成代码审计报告。本申请的一些实施例可以实现对源代码的自动审计,可以提升源代码审计效率,同时将本次修订版本号与任意的预设修订版本号间的代码进行对比,可以扩大审计范围,提升代码审计质量,及时发现代码中存在的潜在漏洞。
4、在一些实施例,所述确认本次提交的待审计代码信息需要审计,包括:确认所述待审计代码信息中不含有评审请求标识;或者,确认所述待审计代码信息中不含有未出版标识。
5、本申请的一些实施例通过是否含有评审请求标识与评审请求标识的类型确定待审计代码信息是否需要审计,可以实现是否审计的智能判断,效率较高。
6、在一些实施例,在所述确认本次提交的待审计代码信息需要审计之前,所述方法还包括:在待审计代码的描述信息中添加所述评审请求标识,得到所述待审计代码信息;其中,所述评审请求标识包括:所述未出版标识、修订版本标识和更新版本标识;或者,在所述待审计代码的描述信息中不添加所述评审请求标识,其中,所述不添加所述评审请求标识表征所述预设修订版本号为与所述本次修订版本号对应的上一次修订版本号。
7、本申请的一些实施例通过在待审计代码中添加评审请求标识或默认不添加得到待审计代码信息,可以实现后续代码审计的准确处理。
8、在一些实施例,所述对所述待审计代码信息中的源代码进行审计,得到第一审计结果,包括:基于所述源代码的类型,确定代码规则库;使用所述代码规则库对所述源代码进行自动审计,生成所述第一审计结果。
9、本申请的一些实施例通过源代码的类型确定代码规则库后实现对源代码的自动审计,提升了源代码的审计效率和审计质量。
10、在一些实施例,所述获取所述差异数据被人工审计后的第二审计结果,包括:利用所述路由地址,查看所述差异数据;响应于评审人员的操作指令,获取所述第二审计结果。
11、本申请的一些实施例通过查看差异数据后进行人工审计得到第二审计结果,可以解决审计环节中,人工审计工作重复问题,提升审计效率。
12、在一些实施例,所述至少基于所述第一审计结果和所述第二审计结果,生成所述待审计代码信息的代码审计报告之前,所述方法还包括:确认对任意修订版本号对应的整个项目源代码进行静态检测分析时,选择所述任意修订版本号对应的目标源代码,其中,所述任意修订版本号包括所述本次修订版本号;对所述目标源代码进行静态代码分析,生成第三审计结果。
13、本申请的一些实施例通过对整个项目源代码进行静态检测分析,得到第三审计结果,可以及时发现整个项目源代码中的低性能、逻辑复杂的代码块和潜在的代码漏洞,提升代码审计质量。
14、在一些实施例,所述代码审计报告包括单次代码审计报告和项目代码审计报告。
15、本申请的一些实施例可以生成单次代码审计报告和项目代码审计报告,适用范围较广。
16、在一些实施例,所述至少基于所述第一审计结果和所述第二审计结果,生成所述待审计代码信息的代码审计报告,包括:基于所述第一审计结果和所述第二审计结果,生成所述单次代码审计报告;或者,基于所述第一审计结果、所述第二审计结果和所述第三审计结果,生成所述整个项目源代码的所述项目代码审计报告。
17、本申请的一些实施例通过第一审计结果和第二审计结果生成单次代码审计报告,或者通过第一审计结果、第二审计结果和第三审计结果生成项目代码审计报告,完善了整个代码审计流程,适用范围广。
18、第二方面,本申请的一些实施例提供了一种代码审计的装置,包括:第一审计模块,用于确认本次提交的待审计代码信息需要审计的情况下,对所述待审计代码信息中的源代码进行审计,得到第一审计结果;对比模块,用于将所述待审计代码信息中的本次修订版本号与预设修订版本号对应的修订版本进行对比,生成差异数据,其中,所述差异数据包括:含有所述第一审计结果的差异代码、补丁文件和路由地址;第二审计模块,用于获取所述差异数据被人工审计后的第二审计结果;审计报告生成模块,用于至少基于所述第一审计结果和所述第二审计结果,生成所述待审计代码信息的代码审计报告。
19、第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的方法。
20、第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的方法。
21、第五方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的方法。
1.一种代码审计的方法,其特征在于,包括:
2.如权利要求1所述的方法,其特征在于,所述确认本次提交的待审计代码信息需要审计,包括:
3.如权利要求2所述的方法,其特征在于,在所述确认本次提交的待审计代码信息需要审计之前,所述方法还包括:
4.如权利要求1-3中任一项所述的方法,其特征在于,所述对所述待审计代码信息中的源代码进行审计,得到第一审计结果,包括:
5.如权利要求1-3中任一项所述的方法,其特征在于,所述获取所述差异数据被人工审计后的第二审计结果,包括:
6.如权利要求1-3中任一项所述的方法,其特征在于,所述至少基于所述第一审计结果和所述第二审计结果,生成所述待审计代码信息的代码审计报告之前,所述方法还包括:
7.如权利要求6所述的方法,其特征在于,所述代码审计报告包括单次代码审计报告和项目代码审计报告。
8.如权利要求7所述的方法,其特征在于,所述至少基于所述第一审计结果和所述第二审计结果,生成所述待审计代码信息的代码审计报告,包括:
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其中,所述计算机程序被处理器运行时执行如权利要求1-8中任意一项权利要求所述的方法。
10.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并在所述处理器上运行的计算机程序,其中,所述计算机程序被所述处理器运行时执行如权利要求1-8中任意一项权利要求所述的方法。
11.一种计算机程序产品,其特征在于,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器运行时执行如权利要求1-8中任意一项权利要求所述的方法。