System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,尤其涉及一种风险代码的检测方法及装置。
技术介绍
1、在软件的开发过程中,经常涉及到同一数据在多个数据对象之间的传递。在该过程中,为了提升开发效率,开发人员通常使用相应代码框架中提供的对象复制语句将源复制对象的属性的取值复制到目标复制对象。然而,当源复制对象与目标复制对象中的属性不一致时,很可能导致源复制对象的部分数据在目标复制对象中的缺失,即源复制对象的至少一项属性的取值未被正确地复制于对应的目标复制对象中,进而损害相应程序的数据完整性。
2、在相关技术中,由于不同代码框架对于上述对象复制语句的定义与限制存在差异,上述数据类型不一致的情况往往不会引起关于对象复制语句的编译错误问题,因此通常通过人工代码评审(code review)的方式来检测出代码中是否存在涉及数据缺失的风险,但该方式必然将浪费较大的时间成本与人力成本。
技术实现思路
1、有鉴于此,本说明书提供一种风险代码的检测方法及装置,以解决相关技术中存在的不足。
2、具体地,本说明书是通过如下技术方案实现的:
3、根据本说明书实施例的第一方面,提供了一种风险代码的检测方法,所述方法包括:
4、获取待检测代码,并查询所述待检测代码中用于将源复制对象的属性的取值复制至目标复制对象的相同属性的对象复制语句;
5、判断查询到的对象复制语句对应的源复制对象与目标复制对象之间的属性是否匹配;
6、在判断结果为否的情况下,确定所述待检测代码存在
7、根据本说明书实施例的第二方面,提供了一种风险代码装置,所述装置包括:
8、语句查询单元,用于获取待检测代码,并查询所述待检测代码中用于将源复制对象的属性的取值复制至目标复制对象的相同属性的对象复制语句;
9、属性匹配单元,用于判断查询到的对象复制语句对应的源复制对象与目标复制对象之间的属性是否匹配;
10、风险确定单元,用于在判断结果为否的情况下,确定所述待检测代码存在对象复制语句的源复制对象的至少一项属性的取值未复制于对应的目标复制对象的风险。
11、根据本说明书实施例的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如第一方面所述的方法的步骤。
12、根据本说明书实施例的第四方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法的步骤。
13、在本说明书所提供的技术方案中,可以通过从待检测代码中查询得到的对象复制语句,并确定对象复制语句对应的源复制对象与目标复制对象之间的属性的匹配情况,从而判断出该待检测代码中是否存在对象复制语句的源复制对象的至少一项属性的取值未复制于对应的目标复制对象的风险,进而帮助代码开发人员高效地发现并确认编译过程中无法发现的风险,并避免实际应用场景中计算资源消耗过度的情况发生。其中,由于整个检测风险过程无需依赖于人工参与,因此无需消耗大量的人力、时间成本较小。
14、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
本文档来自技高网...【技术保护点】
1.一种风险代码的检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述查询所述待检测代码中用于将源复制对象的属性的取值复制至目标复制对象的相同属性的对象复制语句,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述抽象语法树查询所述待检测代码中的对象复制语句,包括:
4.根据权利要求2所述的方法,其特征在于,所述判断查询到的对象复制语句对应的源复制对象与目标复制对象之间的属性是否匹配,包括:
5.根据权利要求4所述的方法,其特征在于,所述第一变量为所述待检测代码中的形式参数,所述第二变量为所述待检测代码中的局部变量;所述根据所述抽象语法树获取与所述第一变量对应的源复制对象以及与所述第二变量对应的目标复制对象,包括:
6.根据权利要求4所述的方法,其特征在于,所述比较源复制对象与所述目标复制对象之间的属性与对应属性的取值,包括:
7.根据权利要求1所述的方法,其特征在于,所述待检测代码包含于待检测程序中,所述方法还包括:
8.一种风险代码装置,其特征在于,所
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1~7任一所述方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~7任一所述方法的步骤。
...【技术特征摘要】
1.一种风险代码的检测方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述查询所述待检测代码中用于将源复制对象的属性的取值复制至目标复制对象的相同属性的对象复制语句,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述抽象语法树查询所述待检测代码中的对象复制语句,包括:
4.根据权利要求2所述的方法,其特征在于,所述判断查询到的对象复制语句对应的源复制对象与目标复制对象之间的属性是否匹配,包括:
5.根据权利要求4所述的方法,其特征在于,所述第一变量为所述待检测代码中的形式参数,所述第二变量为所述待检测代码中的局部变量;所述根据所述抽象语法树获取与所述第一变量对应的源...
【专利技术属性】
技术研发人员:刘磊,
申请(专利权)人:浙江极氪智能科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。