基于动态数据保存数据库防止SQL注入的方法技术

技术编号:36894728 阅读:11 留言:0更新日期:2023-03-15 22:21
本发明专利技术特别涉及一种基于动态数据保存数据库防止SQL注入的方法。该基于动态数据保存数据库防止SQL注入的方法,确定数据分类属性,并根据数据分类属性对动态数据进行分类;根据数据分类创建动态数据的数据库表,并根据数据分类属性为数据库表名添加字段及字段类型,对数据库表名进行校验,以保证数据库表名符合统一规范,且不听数据库的表名不相同,不重复;对动态数据的SQL参数进行识别分类,将不符合数据库表名统一规范的SQL参数进行剔除,防止外来SQL注入。该基于动态数据保存数据库防止SQL注入的方法,通过处理属性数据,防止SQL注入的发生,极大的提高了系统的安全性。极大的提高了系统的安全性。极大的提高了系统的安全性。

【技术实现步骤摘要】
基于动态数据保存数据库防止SQL注入的方法


[0001]本专利技术涉及数据安全
,特别涉及一种基于动态数据保存数据库防止SQL注入的方法。

技术介绍

[0002]在如今数据大爆发的年代,数据安全是系统的一个关键因素。在实际应用场景下,存在许多问题:
[0003]第一、不明确的需求、不明确的模块、不明确的属性等因素,导致数据表名不明确;
[0004]第二、数据表中的某些列不明确;
[0005]第三、数据表的各个列,用来存储的类型字段不明确;
[0006]第四、无法使用明确的建表语句来创建数据表,导致使用MyBatis等持久层时,采用了“${数据表sql}”来新增、修改、删除数据表、数据表数据;系统采用“${数据表sql}”与数据库进行数据交互时,导致SQL注入的风险非常高,采用一般的处理方法来处理“${数据表sql}”,效果并不好。
[0007]第五、在用户使用同一类型的功能,但是不确定此功能有哪些属性或者参数时,采用了动态处理表结构、表数据的解决办法。
[0008]第六、动态数据是指没有说明、定义的动态数据。该类数据保存在数据库中,但该数据保存的表名没有明确的规定或者说明,并且随时可以根据已有的需求进行修改、新增、删除等操作,同时该表有哪些数据列也不确定。在使用MyBatis等数据库持久层组件时,在使用MyBatis等持久层时,“${数据表sql}”没有办法有效的做到防止SQL注入,会导致SQL注入的风险。
[0009]为了解决此类SQL注入问题,,本专利技术提出了一种基于动态数据保存数据库防止SQL注入的方法。

技术实现思路

[0010]本专利技术为了弥补现有技术的缺陷,提供了一种简单高效的基于动态数据保存数据库防止SQL注入的方法。
[0011]本专利技术是通过如下技术方案实现的:
[0012]一种基于动态数据保存数据库防止SQL注入的方法,其特征在于:包括以下步骤:
[0013]步骤S1、确定数据分类属性,并根据数据分类属性对动态数据进行分类;
[0014]步骤S2、根据数据分类创建动态数据的数据库表,并根据数据分类属性为数据库表名添加字段及字段类型,对数据库表名进行校验,以保证数据库表名符合统一规范,且不听数据库的表名不相同,不重复;
[0015]步骤S3、对动态数据的SQL参数进行识别分类,将不符合数据库表名统一规范的SQL参数进行剔除;
[0016]当发现外来SQL参数时,对其进行分割与校验,若校验发现不符合数据库表名统一
规范,则直接将其剔除,防止外来SQL注入。
[0017]所述步骤S1中,确定数据分类属性的同时确定数据库表名的统一规范,将动态数据转化为规范数据;
[0018]所述数据库表名的统一规范包括但不限于字段的数据类型、数据结构、数据长度、数据编码以及数据格式。
[0019]所述步骤S2中,各类动态数据的数据库表分别对应一个具体的业务逻辑表名,对数据库表名进行校验、新增、修改和/或删除操作,以解决数据库表名的重复及不规范的问题。
[0020]所述步骤S2中,各类动态数据的数据库表在数据库中通过代码来创建。
[0021]所述步骤S3中,利用正则表达式对SQL参数进行处理,防止外来SQL注入。
[0022]所述步骤S3中,利用特殊符号替换对SQL参数进行处理,防止外来SQL注入。
[0023]一种用于实现上述方法的基于动态数据保存数据库防止SQL注入的装置,其特征在于:包括数据分类模块,数据库表管理模块以及SQL参数分割与校验模块;
[0024]所述数据分类模块负责确定数据分类属性,并根据数据分类属性对动态数据进行分类;
[0025]所述数据库表管理模块负责根据数据分类属性为数据库表名添加字段及字段类型,对数据库表名进行校验,以保证数据库表名符合统一规范,且不听数据库的表名不相同,不重复;
[0026]所述SQL参数分割与校验模块负责对动态数据的SQL参数进行识别分类,将不符合数据库表名统一规范的SQL参数进行剔除;
[0027]当发现外来SQL参数时,对其进行分割与校验,若校验发现不符合数据库表名统一规范,则直接将其剔除,防止外来SQL注入。
[0028]本专利技术的有益效果是:该基于动态数据保存数据库防止SQL注入的方法,通过处理属性数据,防止SQL注入的发生,极大的提高了系统的安全性。
附图说明
[0029]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]附图1为本专利技术基于动态数据保存数据库防止SQL注入的方法示意图。
具体实施方式
[0031]为了使本
的人员更好的理解本专利技术中的技术方案,下面将结合本专利技术实施例,对本专利技术实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0032]该基于动态数据保存数据库防止SQL注入的方法,包括以下步骤:
[0033]步骤S1、确定数据分类属性,并根据数据分类属性对动态数据进行分类;
[0034]步骤S2、根据数据分类创建动态数据的数据库表,并根据数据分类属性为数据库表名添加字段及字段类型,对数据库表名进行校验,以保证数据库表名符合统一规范,且不听数据库的表名不相同,不重复;
[0035]步骤S3、对动态数据的SQL参数进行识别分类,将不符合数据库表名统一规范的SQL参数进行剔除;
[0036]当发现外来SQL参数时,对其进行分割与校验,若校验发现不符合数据库表名统一规范,则直接将其剔除,防止外来SQL注入。
[0037]所述步骤S1中,确定数据分类属性的同时确定数据库表名的统一规范,将动态数据转化为规范数据;
[0038]所述数据库表名的统一规范包括但不限于字段的数据类型、数据结构、数据长度、数据编码以及数据格式。
[0039]虽然动态数据的数据库表名是未知的,但是可以根据数据分类属性来规划动态数据库表。每一个数据分类表的数据都对应多个数据分类属性,数据分类表的数据和数据分类属性数据是一对多的关系。每个数据分类属性都是用来规范动态数据的,以动态数据的姓名属性为例:
[0040]在数据分类属性中加入姓名的规范,包括采用的数据类型、数据长度是多少、名称是什么、编码是什么、采用什么格式来展示(文本框、下拉框、单选框等)等。
[0041]每个数据分类属性对应动态数据在数据库中一列,也就是数据库建表时,数据分类属性决定了字段在数据库中的保存格式以及在前端的展示。
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态数据保存数据库防止SQL注入的方法,其特征在于:包括以下步骤:步骤S1、确定数据分类属性,并根据数据分类属性对动态数据进行分类;步骤S2、根据数据分类创建动态数据的数据库表,并根据数据分类属性为数据库表名添加字段及字段类型,对数据库表名进行校验,以保证数据库表名符合统一规范,且不听数据库的表名不相同,不重复;步骤S3、对动态数据的SQL参数进行识别分类,将不符合数据库表名统一规范的SQL参数进行剔除;当发现外来SQL参数时,对其进行分割与校验,若校验发现不符合数据库表名统一规范,则直接将其剔除,防止外来SQL注入。2.根据权利要求1所述的基于动态数据保存数据库防止SQL注入的方法,其特征在于:所述步骤S1中,确定数据分类属性的同时确定数据库表名的统一规范,将动态数据转化为规范数据;所述数据库表名的统一规范包括但不限于字段的数据类型、数据结构、数据长度、数据编码以及数据格式。3.根据权利要求2所述的基于动态数据保存数据库防止SQL注入的方法,其特征在于:所述步骤S2中,各类动态数据的数据库表分别对应一个具体的业务逻辑表名,对数据库表名进行校验、新增、修改和/或删除操作,以解决数据库表名的重复及不规范的问题。4.根据权利要求3所述的基于动态数据保存数据库防止SQL注入的方法,其特征在于:所述步骤S2中,各类动态数据的数据库表在数据库中通过代码来创建。5.根据权利要求1所述的基于动态数据保存数据库防止...

【专利技术属性】
技术研发人员:齐雪洁张俊琪
申请(专利权)人:浪潮软件集团有限公司
类型:发明
国别省市:

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

1