【技术实现步骤摘要】
一种静态代码扫描方法、装置、设备及介质
[0001]本专利技术涉及代码扫描
,具体涉及静态代码扫描方法、装置、设备及介质。
技术介绍
[0002]大多数源代码在编写过程中,可能会参杂有类路径设置方式、语句导入方式的内容,则现有静态代码分析技术对于这类源代码进行扫描时,往往会出现扫描错误的结果。但实际上这是由于静态代码分析技术无法正确识别类路径设置方式、语句导入方式的原因,而不是源代码本身出错,由此这类扫描错误的结果并不准确,即存在扫描不准确的问题。
[0003]因此,现有技术有待于改善。
技术实现思路
[0004]本专利技术的主要目的在于提出一种静态代码扫描方法、装置、设备及介质,以至少解决相关技术中代码分析方法对源代码的扫描结果不准确的技术问题。
[0005]本专利技术的第一方面,提供了一种静态代码扫描方法,包括:对源代码文件进行抽象语法树构建,得到对应的抽象语法树结构信息;采用预设的漏洞匹配规则对所述抽象语法树结构信息中的元素信息进行匹配;当所述抽象语法树结构信息匹配失败时,对所述抽 ...
【技术保护点】
【技术特征摘要】
1.一种静态代码扫描方法,其特征在于,包括:对源代码文件进行抽象语法树构建,得到对应的抽象语法树结构信息;采用预设的漏洞匹配规则对所述抽象语法树结构信息中的元素信息进行匹配;当所述抽象语法树结构信息匹配失败时,对所述抽象语法树结构信息中元素信息的设置类路径进行验证;当所述抽象语法树结构信息中元素信息的设置路径通过验证时,检测所述抽象语法树结构信息中的import语句的导入方式是否为按需类型导入;当所述抽象语法树结构信息中的import语句的导入方式为所述按需类型导入时,对所述import语句进行拼接处理,得到目标抽象语法树结构信息;采用预设的漏洞匹配规则对所述目标抽象语法树结构信息进行匹配,得到匹配结果;根据所述匹配结果输出所述源代码文件的扫描结果。2.如权利要求1所述静态代码扫描方法,其特征在于,所述采用预设的漏洞匹配规则对所述抽象语法树结构信息中的元素信息进行匹配的步骤,具体包括:对所述抽象语法树结构信息进行识别,提取所有的元素信息;依次将预设的漏洞匹配规则中已配置的正则表达式与各所述元素信息进行匹配。3.如权利要求1所述静态代码扫描方法,其特征在于,所述对所述抽象语法树结构信息中元素信息的设置路径进行验证的步骤,具体包括:提取所述抽象语法树结构信息中元素信息的类路径,并获取所述源代码文件的包名;将所述类路径与所述包名进行对比,得到对比结果;根据所述对比结果对所述元素信息的设置路径进行验证。4.如权利要求1所述静态代码扫描方法,其特征在于,所述检测所述抽象语法树结构信息中的import语句的导入方式是否为按需类型导入的步骤,具体包括:对所述抽象语法树结构信息中的import语句的通配符进行识别处理,得到识别结果;根据所述识别结果检测所述import语句的导入方式是否为按需类型导入。5.如权利要求1所述静态代码扫描方法,其特征在于,所述对所述import语句进行拼接处理,得到目标抽象语法树结构信息的步骤,具体包括:当所述import语句的数量为一个时,将处于所述import语句前的所述目标路径与所述目标类名进行拼接,得到目标抽象语法树结构信息;当所述import语句的数量为大于或等于两个时,分别将处于各所述impor...
【专利技术属性】
技术研发人员:吴金卓,万振华,王颉,徐瑞祝,陆庆尚,
申请(专利权)人:深圳开源互联网安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。