防御SQL注入的方法、装置、电子设备、及程序产品制造方法及图纸

技术编号:37773478 阅读:20 留言:0更新日期:2023-06-06 13:40
本申请提供防御SQL注入的方法、装置、电子设备、及程序产品,涉及数据安全技术领域。所述方法包括:解析SQL业务请求,得到SQL语法树;根据SQL语法树,得到SQL业务请求的固定部分和可变部分;利用特定符号替换SQL业务请求的可变部分,结合SQL业务请求的固定部分,得到SQL字符串;对SQL字符串进行哈希处理,得到SQL哈希值;基于语法标准数据集,根据SQL哈希值,筛选出为安全请求的SQL业务请求。本申请提供的防御SQL注入的方法,快速且准确地筛选出安全请求,有效防御SQL注入,能够保证SQL业务请求的正确执行以及提高SQL业务请求的执行效率,同时不会产生额外的网络带宽,具备良好的扩展性。性。性。

【技术实现步骤摘要】
防御SQL注入的方法、装置、电子设备、及程序产品


[0001]本申请涉及数据安全
,具体涉及一种防御SQL注入的方法、装置、电子设备、及计算机程序产品。

技术介绍

[0002]现有的防御SQL注入的方法通常会采用提前防御的方式或者动态防御的方式实现。动态防御方式具有实时防护特性,其通过检测用户提交的SQL业务请求中的关键字来预测SQL业务请求为恶意请求的概率,从而防御SQL注入。这种方法虽然简单,但是存在缺陷:一是关键字漏判,由于SQL语句的灵活性,有经验的攻击者很容易绕过服务器预设的关键字进行攻击,导致无法有效防御SQL注入;二是关键字误判,服务器有可能将SQL业务请求中的正常信息误以为是预设的关键字,导致对安全请求进行了拦截,影响SQL业务请求的正常执行。

技术实现思路

[0003]本申请实施例提供一种防御SQL注入的方法,用以解决无法有效防御SQL注入的技术问题。
[0004]第一方面,本申请实施例提供一种防御SQL注入的方法,包括:
[0005]解析SQL业务请求,得到SQL语法树;
[0006]根据所述SQL语法树,得到所述SQL业务请求的固定部分和可变部分;
[0007]利用特定符号替换所述SQL业务请求的可变部分,结合所述SQL业务请求的固定部分,得到SQL字符串;
[0008]对所述SQL字符串进行哈希处理,得到SQL哈希值;
[0009]基于语法标准数据集,根据所述SQL哈希值,筛选出为安全请求的SQL业务请求;
[0010]其中,所述语法标准数据集中存储有对应安全请求的标准哈希值。
[0011]在一个实施例中,所述基于语法标准数据集,根据所述SQL哈希值,筛选出为安全请求的SQL业务请求,包括:
[0012]当所述SQL哈希值与所述语法标准数据集中的标准哈希值匹配上时,判断所述SQL业务请求为安全请求;
[0013]当所述SQL哈希值未与所述语法标准数据集中的标准哈希值匹配上时,将所述SQL业务请求归类为未知请求。
[0014]在一个实施例中,所述防御SQL注入的方法还包括:
[0015]当所述SQL业务请求被归类为未知请求时,将所述SQL业务请求存储于隔离区域。
[0016]在一个实施例中,所述防御SQL注入的方法还包括:
[0017]当所述SQL业务请求被归类为未知请求时,对所述SQL业务请求进行报错处理。
[0018]在一个实施例中,所述防御SQL注入的方法还包括:
[0019]当报错处理结果为所述SQL业务请求是危险请求时,拦截所述SQL业务请求;
[0020]当报错处理结果为所述SQL业务请求是新增请求时,将所述SQL业务请求的SQL哈希值增加至所述语法标准数据集中。
[0021]在一个实施例中,所述语法标准数据集中的每一个标准哈希值均设有身份证明。
[0022]在一个实施例中,所述语法标准数据集中存储有对应安全请求的标准哈希值,具体为:
[0023]通过哈希存储器存储所述语法标准数据集对应安全请求样本的标准哈希值。
[0024]在一个实施例中,基于数据库的计算层实现所述防御SQL注入的方法。
[0025]第二方面,本申请实施例提供一种一种防御SQL注入的装置,包括:
[0026]SQL业务请求解析模块,用于:解析SQL业务请求,得到SQL语法树;
[0027]SQL语法树逆推模块,用于:根据所述SQL语法树,得到所述SQL业务请求的固定部分和可变部分;
[0028]SQL字符串得到模块,用于:利用特定符号替换所述SQL业务请求的可变部分,结合所述SQL业务请求的固定部分,得到SQL字符串;
[0029]SQL哈希值得到模块,用于:对所述SQL字符串进行哈希处理,得到SQL哈希值;
[0030]SQL业务请求筛选模块,用于:基于语法标准数据集,根据所述SQL哈希值,筛选出为安全请求的SQL业务请求;
[0031]其中,所述语法标准数据集中存储有对应安全请求的标准哈希值。
[0032]第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述的防御SQL注入的方法的步骤。
[0033]第四方面,本申请实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的防御SQL注入的方法的步骤。
[0034]本申请实施例提供的防御SQL注入的方法、装置、电子设备、及计算机程序产品,根据SQL语法树还原出SQL业务请求的固定部分和可变部分,使用特定符号替换SQL业务请求的可变部分,固化SQL业务请求,再通过SQL哈希值与语法标准数据集中的标准哈希值进行对比,快速且准确地筛选出安全请求,有效防御SQL注入,能够保证SQL业务请求的正确执行以及提高SQL业务请求的执行效率,同时不会产生额外的网络带宽,具备良好的扩展性,可以充分支持业务扩展。
附图说明
[0035]为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0036]图1是本申请实施例提供的防御SQL注入的方法的流程示意图;
[0037]图2是本申请实施例提供的防御SQL注入的装置的结构示意图;
[0038]图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0039]为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附
图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0040]图1为本申请实施例提供一种防御SQL注入的方法的流程示意图。
[0041]参照图1,本申请实施例提供一种防御SQL注入的方法,可以包括:
[0042]S110、解析SQL业务请求,得到SQL语法树;
[0043]S120、根据所述SQL语法树,得到所述SQL业务请求的固定部分和可变部分;
[0044]S130、利用特定符号替换所述SQL业务请求的可变部分,结合所述SQL业务请求的固定部分,得到SQL字符串;
[0045]S140、对所述SQL字符串进行哈希处理,得到SQL哈希值;
[0046]S150、基于语法标准数据集,根据所述SQL哈希值,筛选出为安全请求的SQL业务请求;
[0047]其中,所述语法标准数据集中存储有对应安全请求的标准哈希值。
[0048]需要说明的是,业务与数据库之间的交互通常是通过SQL(本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种防御SQL注入的方法,其特征在于,包括:解析SQL业务请求,得到SQL语法树;根据所述SQL语法树,得到所述SQL业务请求的固定部分和可变部分;利用特定符号替换所述SQL业务请求的可变部分,结合所述SQL业务请求的固定部分,得到SQL字符串;对所述SQL字符串进行哈希处理,得到SQL哈希值;基于语法标准数据集,根据所述SQL哈希值,筛选出为安全请求的SQL业务请求;其中,所述语法标准数据集中存储有对应安全请求的标准哈希值。2.根据权利要求1所述的防御SQL注入的方法,其特征在于,所述基于语法标准数据集,根据所述SQL哈希值,筛选出为安全请求的SQL业务请求,包括:当所述SQL哈希值与所述语法标准数据集中的标准哈希值匹配上时,判断所述SQL业务请求为安全请求;当所述SQL哈希值未与所述语法标准数据集中的标准哈希值匹配上时,将所述SQL业务请求归类为未知请求。3.根据权利要求2所述的防御SQL注入的方法,其特征在于,所述防御SQL注入的方法还包括:当所述SQL业务请求被归类为未知请求时,将所述SQL业务请求存储于隔离区域。4.根据权利要求3所述的防御SQL注入的方法,其特征在于,所述防御SQL注入的方法还包括:当所述SQL业务请求被归类为未知请求时,对所述SQL业务请求进行报错处理。5.根据权利要求4所述的防御SQL注入的方法,其特征在于,所述防御SQL注入的方法还包括:当报错处理结果为所述SQL业务请求是危险请求时,拦截所述SQL业务请求;当报错处理结果为所述SQL业务请求是新增请求时,将所述SQL业务请求的SQL哈希值增加至所述语法标准数据集中。6.根据权利要求1

【专利技术属性】
技术研发人员:徐海勇陈国张春黄薇周婧李敬林
申请(专利权)人:中国移动通信集团有限公司
类型:发明
国别省市:

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

1