一种SQL语句的风险检测方法、装置、系统及介质制造方法及图纸

技术编号:35104328 阅读:19 留言:0更新日期:2022-10-01 17:13
本发明专利技术公开了一种SQL语句的风险检测方法、装置、系统及介质,方法包括:获取待检测的SQL文件;对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配;根据所述节点分析结果与所述预设匹配规则是否匹配,确认所述SQL文件中是否存在整表删除的风险操作。通过对待检测的SQL文件进行节点分析,并将节点分析结果与预设匹配规则进行自动匹配检测,可批量对多个项目代码进行自动的风险检测,以识别代码中是否存在整表删除的风险操作,提高了SQL语句的风险检测效率和准确性。性。性。

【技术实现步骤摘要】
一种SQL语句的风险检测方法、装置、系统及介质


[0001]本专利技术涉及计算机
,尤其涉及一种SQL语句的风险检测方法、装置、系统及介质。

技术介绍

[0002]SQL(Structured Query Language,结构化查询语言)是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
[0003]在项目开发过程中,开发人员由于对业务考虑不够周全,可能存在整表删除数据库代码语句的情况,对数据库整表删除代码,若符合编译器要求并不会造成编译或者执行错误,但在上线运行一段时间后,由于业务场景更新,或者业务场景发生变化,触发对已经删除的数据的访问的时候,就可能会出现异常,而一旦出现异常,因为已经对数据进行了物理删除无法恢复,导致SQL代码所应用的数据库系统难以正常运行。
[0004]现有的对SQL语句的检测基本靠程序员自身代码能力和对业务场景判断,及人工代码审查解决此类问题,检查方式容易存在遗漏且耗时,风险检测效率与准确性均较低。

技术实现思路

[0005]鉴于上述现有技术的不足,本专利技术的目的在于提供一种SQL语句的风险检测方法、装置、系统及介质,旨在提高SQL语句检测的效率和准确性。
[0006]本专利技术的技术方案如下:
[0007]一种SQL语句的风险检测方法,包括:
[0008]获取待检测的SQL文件;
[0009]对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配;
[0010]根据所述节点分析结果与所述预设匹配规则是否匹配,确认所述SQL文件中是否存在整表删除的风险操作。
[0011]在一个实施例中,所述获取待检测的SQL文件,包括:
[0012]获取集成有SQL语句的源代码;
[0013]或者,
[0014]获取集成有SQL语句的配置文件。
[0015]在一个实施例中,当获取集成有SQL语句的源代码时,所述对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配,包括:
[0016]对所述集成有SQL语句的源代码构建抽象语法树;
[0017]分析所述抽象语法树的结构,获取所述抽象语法树中的变量节点;
[0018]对所述变量节点中的字符串进行标准转换处理;
[0019]将经标准转换处理后的字符串与预设匹配规则进行匹配。
[0020]在一个实施例中,所述预设匹配规则包括:
[0021]所述变量节点中包括存在删除语句且不存在条件语句的风险节点;
[0022]以及,
[0023]当存在所述风险节点的平行节点时,所述平行节点中不存在条件语句。
[0024]在一个实施例中,当获取集成有SQL语句的配置文件时,所述对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配,包括:
[0025]获取所述集成有SQL语句的配置文件中的节点信息;
[0026]将所述节点信息与预设匹配规则进行匹配。
[0027]在一个实施例中,所述预设匹配规则包括:
[0028]所述节点信息中存在删除节点且所述删除节点中不存在条件语句;
[0029]以及,
[0030]当存在所述删除节点的平行节点时,所述平行节点中不存在条件语句。
[0031]在一个实施例中,所述根据所述节点分析结果与所述预设匹配规则是否匹配,确认所述SQL文件中是否存在整表删除的风险操作,具体包括:
[0032]若所述节点分析结果与所述预设匹配规则匹配,则所述SQL文件中存在整表删除的风险操作;
[0033]或者,
[0034]若所述节点分析结果与所述预设匹配规则不匹配,则所述SQL文件中不存在整表删除的风险操作。
[0035]一种SQL语句的风险检测装置,包括:
[0036]获取模块,用于获取待检测的SQL文件;
[0037]分析匹配模块,用于对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配;
[0038]检测模块,用于根据所述节点分析结果与所述预设匹配规则是否匹配,确认所述SQL文件中是否存在整表删除的风险操作。
[0039]一种SQL语句的风险检测系统,所述系统包括至少一个处理器;以及,
[0040]与所述至少一个处理器通信连接的存储器;其中,
[0041]所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述SQL语句的风险检测方法。
[0042]一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行时,可使得所述一个或多个处理器执行上述的SQL语句的风险检测方法。
[0043]有益效果:本专利技术公开了一种SQL语句的风险检测方法、装置、系统及介质,相比于现有技术,本专利技术实施例通过对待检测的SQL文件进行节点分析,并将节点分析结果与预设匹配规则进行自动匹配检测,可批量对多个项目代码进行自动的风险检测,以识别代码中是否存在整表删除的风险操作,提高了SQL语句的风险检测效率和准确性。
附图说明
[0044]下面将结合附图及实施例对本专利技术作进一步说明,附图中:
[0045]图1为本专利技术提供的SQL语句的风险检测方法的一个流程图;
[0046]图2为本专利技术提供的SQL语句的风险检测方法中一个实施例的流程图;
[0047]图3为本专利技术提供的SQL语句的风险检测方法中另一个实施例的流程图;
[0048]图4为本专利技术提供的SQL语句的风险检测装置的功能模块示意图;
[0049]图5为本专利技术提供的SQL语句的风险检测系统的硬件结构示意图。
具体实施方式
[0050]为使本专利技术的目的、技术方案及效果更加清楚、明确,以下对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。以下结合附图对本专利技术实施例进行介绍。
[0051]请参阅图1,图1为本专利技术提供的SQL语句的风险检测方法一个实施例的流程图。本实施例提供的SQL语句的风险检测方法适用于对SQL代码中的整表删除风险进行快速检测的情况,具体应用于包括终端设备、网络和服务器构成的测试系统,其中网络为用于在终端设备和服务器直接提供通信链路的介质,其可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等;终端设备上的操作系统可以包括手持设备操作系统(iPhone operating system,iOS系统)、安卓系统或其他操作系统,终端设备通过网络连接到服务器以实现交互,从而进行接收或发送数据等操作,具体可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、便携式计算机和台式服务器等等。如图1所示,该方法具体包括如下步骤:
[0052]S100本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种SQL语句的风险检测方法,其特征在于,包括:获取待检测的SQL文件;对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配;根据所述节点分析结果与所述预设匹配规则是否匹配,确认所述SQL文件中是否存在整表删除的风险操作。2.根据权利要求1所述的SQL语句的风险检测方法,其特征在于,所述获取待检测的SQL文件,包括:获取集成有SQL语句的源代码;或者,获取集成有SQL语句的配置文件。3.根据权利要求2所述的SQL语句的风险检测方法,其特征在于,当获取集成有SQL语句的源代码时,所述对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配,包括:对所述集成有SQL语句的源代码构建抽象语法树;分析所述抽象语法树的结构,获取所述抽象语法树中的变量节点;对所述变量节点中的字符串进行标准转换处理;将经标准转换处理后的字符串与预设匹配规则进行匹配。4.根据权利要求3所述的SQL语句的风险检测方法,其特征在于,所述预设匹配规则包括:所述变量节点中包括存在删除语句且不存在条件语句的风险节点;以及,当存在所述风险节点的平行节点时,所述平行节点中不存在条件语句。5.根据权利要求2所述的SQL语句的风险检测方法,其特征在于,当获取集成有SQL语句的配置文件时,所述对所述待检测的SQL文件进行节点分析,将节点分析结果与预设匹配规则进行匹配,包括:获取所述集成有SQL语句的配置文件中的节点信息;将所述节点信息与预设匹配规则进行匹配。6.根据权利要求5所述的SQL语句的风险检测方法,其特征在于,所述预设匹配规则包括:所述节点信...

【专利技术属性】
技术研发人员:周小亮邹亮亮杨坤
申请(专利权)人:平安银行股份有限公司
类型:发明
国别省市:

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

1