语句提取方法、装置、电子设备和计算机可读存储介质制造方法及图纸

技术编号:32643607 阅读:13 留言:0更新日期:2022-03-12 18:21
本申请提供了一种语句提取方法、装置、电子设备和计算机可读存储介质,其中,该方法包括:获取待处理批量SQL数据;根据预设匹配规则,确定出所述待处理批量SQL数据中包含的各条SQL语句的偏移位置;根据所述偏移位置,从所述待处理批量SQL数据中提取出各条SQL语句,并构建SQL语句集。构建SQL语句集。构建SQL语句集。

【技术实现步骤摘要】
语句提取方法、装置、电子设备和计算机可读存储介质


[0001]本申请涉及数据处理
,具体而言,涉及一种语句提取方法、装置、电子设备和计算机可读存储介质。

技术介绍

[0002]现有的数据库客户端支持批量SQL(Structured Query Language,结构化查询语言)执行,批量结果返回,为执行多SQL任务提供了方便。但这也给安全审计带来了一些挑战,尤其对一些未公开的数据库协议数据。如果批量SQL中可能存在一些危险SQL操作,由于批量SQL的存在可能会导致危险SQL操作不能够被及时发现。

技术实现思路

[0003]本申请的目的在于提供一种语句提取方法、装置、电子设备和计算机可读存储介质,能够批量SQL中的危险SQL操作不容易被发现的问题。
[0004]第一方面,本申请提供一种语句提取方法,包括:
[0005]获取待处理批量SQL数据;
[0006]根据预设匹配规则,确定出所述待处理批量SQL数据中包含的各条SQL语句的偏移位置;
[0007]根据所述偏移位置,从所述待处理批量SQL数据中提取出各条SQL语句,并构建SQL语句集。
[0008]在可选的实施方式中,所述根据预设匹配规则,确定出所述待处理批量SQL数据中包含的各条SQL语句的偏移位置,包括:
[0009]使用预设的SQL正则库中的句柄,对所述待处理批量SQL数据进行匹配,以得到所述待处理批量SQL数据中包含的各条SQL语句的偏移位置。
[0010]在可选的实施方式中,所述使用预设的SQL正则库中的句柄,对所述待处理批量SQL数据进行匹配,以得到所述待处理批量SQL数据中包含的各条SQL语句的偏移位置,包括:
[0011]将所述待处理批量SQL数据输入所述hyperscan的匹配接口,使用所述SQL正则库中的句柄,对所述待处理批量SQL数据进行匹配,以得到所述待处理批量SQL数据中包含的各条SQL语句的偏移位置。
[0012]在可选的实施方式中,所述方法还包括:
[0013]使用hyperscan的规则加载接口加载所述SQL正则库,在所述SQL正则库加载成功后再执行所述获取待处理批量SQL数据的步骤。
[0014]在可选的实施方式中,所述方法还包括:
[0015]根据配置文件判断批量SQL分析开关是否启动,所述配置文件用于记录当前工作模式;
[0016]在所述批量SQL分析开关为启动状态时,再执行所述根据预设匹配规则,确定出所
述待处理批量SQL数据中包含的各条SQL语句的偏移位置的步骤。
[0017]在可选的实施方式中,所述根据配置文件判断批量SQL分析开关是否启动,包括:
[0018]获取配置文件中的目标字段;
[0019]判断所述目标字段的值是否为预设值;
[0020]若所述目标字段的值为预设值,则表征批量SQL分析开关为启动状态。
[0021]在可选的实施方式中,所述获取待处理批量SQL数据,包括:
[0022]接收数据库的流量数据;
[0023]根据所述数据库的数据协议解析对所述流量数据进行解析,以确定出所述流量数据中的待处理批量SQL数据。
[0024]第二方面,本申请提供一种语句提取装置,包括:
[0025]获取模块,用于获取待处理批量SQL数据;
[0026]确定模块,用于根据预设匹配规则,确定出所述待处理批量SQL数据中包含的各条SQL语句的偏移位置;
[0027]提取模块,用于根据所述偏移位置,从所述待处理批量SQL数据中提取出各条SQL语句,并构建SQL语句集。
[0028]第三方面,本申请提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如前述实施方式任一所述的方法的步骤。
[0029]第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如前述实施方式任一所述的方法的步骤。
[0030]本申请实施例的有益效果是:通过在获得到批量SQL数据后,可以基于设定的规则将批量SQL数据中的各条SQL语句,基于偏移位置能够提取出来,从而可以及时将各条SQL语句从批量SQL数据分离出来,从而可以更方便地了解到各条SQL语句是否为危险SQL操作,从而也可以提高批量SQL任务的安全性。
附图说明
[0031]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0032]图1为本申请实施例提供的电子设备的方框示意图;
[0033]图2为本申请实施例提供的语句提取方法的另一流程图;
[0034]图3为本申请实施例提供的语句提取方法的流程图;
[0035]图4为本申请实施例提供的语句提取装置的功能模块示意图。
具体实施方式
[0036]下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
[0037]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0038]专利技术人了解到,数据库客户端支持的批量SQL执行虽然能够为执行多SQL任务提供了方便,但是也会不容易发现批量SQL存在的危险操作。如果不能及时发现具体的某条危险SQL操作,就会对于可能存在的危险SQL操作无法及时准确的审计,进而无法采取必要的安全测试予以阻止。例如:镜像流量中有一条批量SQL串如:update test4 set name=”bbb”;select name from test;drop table user_keys;insert into test3(id,name,score)values(“10001”,”aaa”,500);其中有一条危险SQL操作:drop table user_keys;会对系统中用户的账户信息产生难以想象的影响,并且很难恢复,就需要及时提取并识别此种危险操作,并予以制止。
[0039]为解决上述问题,本申请的专利技术人提出一种语句提取方法,该语句提取方法可将来自客户端的批量SQL数据,在网络传输过程中,通过SQL正则集匹配单条的SQL语句集,进而产生告警或者阻断该条危险操作。下面通过一些实施例描述本申请的语句提取方法。
[0040]为便于对本实施例进行理解,首先对执行本申请实施例所公开的语句提取方法的电子设备进行详细介绍。
[0041]如图1所示,是电子设备的方框示意图。电子设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种语句提取方法,其特征在于,包括:获取待处理批量SQL数据;根据预设匹配规则,确定出所述待处理批量SQL数据中包含的各条SQL语句的偏移位置;根据所述偏移位置,从所述待处理批量SQL数据中提取出各条SQL语句,并构建SQL语句集。2.根据权利要求1所述的方法,其特征在于,所述根据预设匹配规则,确定出所述待处理批量SQL数据中包含的各条SQL语句的偏移位置,包括:使用预设的SQL正则库中的句柄,对所述待处理批量SQL数据进行匹配,以得到所述待处理批量SQL数据中包含的各条SQL语句的偏移位置。3.根据权利要求2所述的方法,其特征在于,所述使用预设的SQL正则库中的句柄,对所述待处理批量SQL数据进行匹配,以得到所述待处理批量SQL数据中包含的各条SQL语句的偏移位置,包括:将所述待处理批量SQL数据输入hyperscan的匹配接口,使用所述SQL正则库中的句柄,对所述待处理批量SQL数据进行匹配,以得到所述待处理批量SQL数据中包含的各条SQL语句的偏移位置。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:使用所述hyperscan的规则加载接口加载所述SQL正则库,在所述SQL正则库加载成功后再执行所述获取待处理批量SQL数据的步骤。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:根据配置文件判断批量SQL分析开关是否启动,所述配置文件用于记录当前工作模式;在所述批量SQL分析...

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

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

1