CN108763887A - 数据库操作请求验证方法、装置、服务器及存储介质 - Google Patents
数据库操作请求验证方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN108763887A CN108763887A CN201810501913.XA CN201810501913A CN108763887A CN 108763887 A CN108763887 A CN 108763887A CN 201810501913 A CN201810501913 A CN 201810501913A CN 108763887 A CN108763887 A CN 108763887A
- Authority
- CN
- China
- Prior art keywords
- abstract
- request
- identifier
- statement
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据库操作请求验证方法、装置、服务器及存储介质;本发明实施例在接收到数据库操作请求之后,获取数据库操作请求的数据库操作语句,对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号,根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要,基于预设摘要集合,对所述请求摘要进行验证,当所述请求摘要验证通过时,确定所述数据库操作请求合法;该方案可以大大降低数据库防注入技术的实现难度。
Description
技术领域
本发明涉及数据库领域,具体涉及一种数据库操作请求验证方法、装置、服务器及存储介质。
背景技术
随着技术发展,数据库在用户日常工作、生活中的地位也日益重要,为了保证数据库的安全,现有技术提供了多种数据库防注入的技术,例如对传入的参数进行过滤,禁止输入非法的字符;如禁止“--”,“#”,“’”等非法字符的输入,但是该方法要求开发者熟知数据库的各类特殊字符,任何疏漏都可能被攻击者利用。
可见,现有数据库防注入技术需要用户具备较多的专业知识,实现难度大。
发明内容
本发明实施例提供一种数据库操作请求验证方法、装置、服务器及存储介质,可以降低数据库防注入技术的实现难度。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种数据库操作请求验证方法,其特征在于,包括:
获取数据库操作请求的数据库操作语句;
对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
基于预设摘要集合,对所述请求摘要进行验证;
当所述请求摘要验证通过时,确定所述数据库操作请求合法。
一种数据库操作请求验证装置,其特征在于,包括:
获取模块,用于获取数据库操作请求的数据库操作语句;
处理模块,用于对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
构建模块,用于根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
验证模块,用于基于预设摘要集合,对所述请求摘要进行验证;
确定模块,用于当所述请求摘要验证通过时,确定所述数据库操作请求合法。
一种服务器,包括处理器和存储器,所述存储器存储有多条指令,所述指令适于处理器进行加载,以执行上述数据库操作请求验证方法中的步骤。
一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行上述数据库操作请求验证方法中的步骤。
本发明实施例在接收到数据库操作请求之后,获取数据库操作请求的数据库操作语句,对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号,根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要,基于预设摘要集合,对所述请求摘要进行验证,当所述请求摘要验证通过时,确定所述数据库操作请求合法;这样开发者仅需要提供几种合法数据库操作请求,根据这些合法请求的摘要构建预设摘要集合,然后对所接收到的数据库操作请求的请求摘要进行校验,即可防止任何潜在的注入攻击,并且无需用户调用特殊的接口,或者过滤特殊的字符,可以大大减轻了开发者的开发负担,并降低了错误,同时只需和数据库网关完成一次交互即可,不会带来额外的网络交互开销,大大降低了数据库防注入技术的实现难度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的数据库***的第一种组网示意图;
图2是本发明实施例提供的数据库操作请求验证方法的第一种流程示意图;
图3是本发明实施例提供的数据库操作请求验证装置的结构示意图;
图4是本发明实施例提供的数据库***的第二种组网示意图;
图5是本发明实施例提供的数据库操作请求验证方法的第二种流程示意图;
图6是本发明实施例提供的数据库操作请求验证方法的第三种流程示意图;
图7是本发明实施例提供的开发者界面的示意图;
图8是本发明实施例提供的用户界面的示意图;
图9是本发明实施例提供的用户界面的示意图;
图10是本发明实施例提供的语句解析示意图;
图11是本发明实施例提供的终端的结构示意图;
图12是本发明实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例所提供的数据库***的场景示意图,该数据库***可以包括接口服务器11、网关服务器12以及提供各种数据支持的数据服务器13;其中:
数据服务器13用于提供各种用户数据的存储、读写、访问等功能;
接口服务器11用于为用户提供访问接口,接收用户通过终端发送的数据库操作请求等,并转发至网关服务器12;
网关服务器12用于根据开发者提供的合法请求集合或者非法请求集合,生成预设摘要集合,以及接收来自用户的数据库操作请求,例如SQL(Structured Query Language,结构化查询语言)格式的操作请求(为了便于描述,记为SQL请求),获取对应的数据库操作语句,如SQL语句,对数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号,然后根据数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要,最后基于预设摘要集合,对所述请求摘要进行验证,当所述请求摘要验证通过时,确定所述数据库操作请求合法;然后转发至数据服务器13执行。
请求摘要是指忽略操作中的字符串、数值等参数后所剩下的语法框架。例如下面的用作用户认证的SQL语句:select*from user where username='admin'and password='pwd123';其"摘要"为:select*from user where username=?and password=?;其中"?"便是被忽略的参数。在正常情况下,用户可以指定任意的用户名和密码来拼接SQL语句,其摘要都是相同的。而如果用户指定了恶意的参数,例如传入“myuser'or'foo'='foo'--”作为用户名,则拼接成如下sql:select*from user where username='admin'or'foo'=='foo'--”and password='xxx';其摘要也会发生相应的变化,即:select*fromuser where username=?or?==?;因此可以借助摘要的变化来判断用户是否传入恶意的参数。
为了获取操作请求的请求摘要,需要将操作请求对应的请求语句分解为标识符号,然后确定各标识符号的类型,根据类型对标识符号进行处理,得到请求摘要。
具体的,SQL语句经过网关服务器内的词法解析模块会被分解为一个个的token(即标识符号),这些token会传给网关服务器内的语法分析模块构建出最终的语法树。为了生成SQL对应的摘要,词法解析模块将生成的token记录到一个数组中;而语法分析模块在接收到token之后,根据token所在的上下文对数组中的token进行相应的替换,当数据库网关完成对用户SQL的语法解析之后,相应的摘要就构成了(即token数组)。
token的类型可以大致分为关键字、标识(例如表名或者列名等)以及用户参数等。用户参数包括但不局限于用户账号、密码、操作对象等,关键字和标识会按序记录到token数组中,用户参数则用“?”进行替换,当遇到用户参数序列时,还需对token继续合并,并用“(...)”进行替换,例如:“insert into tbl values(1),(2),(3);”,其摘要为:“insertinto tbl values(...)”。
语法分析模块会根据上下文对token进行修正,例如:“create table t(id intnot null,value varchar(10)default null)”,其中null为关键字,语法分析模块在处理第一个null时,不会做任何修改;但是处理第二个null时,则将其作为用户参数,替换为“?”。
标识符号是指单个单词或者符号等,其基于词法解析规则来确定。
预设摘要集合可以是摘要白名单,也可以是摘要黑名单;当预设摘要集合为摘要白名单时,若操作请求的请求摘要存在于摘要白名单,则请求摘要验证通过,否则验证未通过;当预设摘要集合为摘要黑名单时,若操作请求的请求摘要不存在于摘要黑名单,则请求摘要验证通过,否则验证未通过;下文以预设摘要集合为摘要白名单进行详细说明,预设摘要集合为摘要黑名单的实现方式与其类似,不再赘述。
在本发明实施例中,网关服务器会根据用户配置的防火墙规则,生成一个摘要白名单,摘要白名单中包含了所有的合法SQL的摘要,并且按照摘要的hash值(索引值的一种具体实现方式)进行排序;在收到用户发送过来的SQL请求时,会计算出相应的请求摘要及请求摘要的hash值,并按照hash值在摘要白名单中进行二分查找,因此查找的开销为O(log(n)),n为摘要白名单中摘要的数量),并根据是否在白名单中来判断是否运行SQL请求。
需要说明的是,图1所示的***场景示意图仅仅是一个示例,本发明实施例描述的服务器以及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着***的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
以下分别针对数据库操作请求验证方法以及装置进行详细说明。
图2是本发明实施例提供的数据库操作请求验证方法的第一种流程示意图,请参阅图2,该数据库操作请求验证方法包括以下步骤:
S201:获取数据库操作请求的数据库操作语句。
在接收到数据库操作请求之后,获取对应的数据库操作语句。例如在接收到用于用户认证的SQL请求后,获取对应的SQL语句:select*from user where username='admin'and password='pwd123'。
S202:对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号。
本步骤就是常规的分解处理方式,例如将SQL语句“select*from user whereusername='admin'and password='pwd123'”分解为一系列的标识符号:“select”、“*”、“from”、“user”、“where”、“username”、“=”、“'”、“admin”、“'”、“and”、“password”、“=”、“'”、“pwd123”、“'”。
S203:根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要。
在一些实施例中,本步骤包括:
根据词法解析规则,确定所述标识符号的内容;
根据所述标识符号的内容,确定所述标识符号的类型,所述类型包括关键词、标识以及用户参数中的一种;
将类型为预设类型的标识符号,替换为预设标识符号;
将替换处理后的所有标识符号,按序组合为所述请求摘要。
在一些实施例中,所述预设类型包括用户参数。
例如,步骤S202所得到的标识符号“username”的内容为username,根据这个内容确定类型为关键词,其他标识符号与此相同;那么,在步骤S202所得到的所有标识符号中,类型为关键词的标识符号包括“select”、“*”、“from”、“user”、“where”、“username”、“=”、“'”、“'”、“and”、“password”、“=”、“'”以及“'”,类型为用户参数的标识符号包括“admin”以及“pwd123”,然后将“admin”以及“pwd123”均替换为预设标识符号“?”,将替换处理后的所有标识符号,按序组合为所述请求摘要:select*from user where username='?'andpassword='?'。
在一些实施例中,将类型为预设类型的标识符号,替换为预设标识符号的步骤包括:
当类型为用户参数的标识符号单个出现时,将该标识符号替换为第一预设符号;例如将“admin”以及“pwd123”替换为预设标识符号“?”;
当类型为用户参数的标识符号连续多个出现时,将连续出现的多个标识符号替换为第二预设符号;例如将SQL语句insert into tbl values(1),(2),(3)中的“(1)”、“,”、“(2)”、“,”、“(3)”替换为“(...)”。
在实际应用中,同一个标识符号在不同位置可能具备不同的类型,为了使得请求摘要更准确,在一些实施例中,在将替换处理后的所有标识符号,按序组合为所述请求摘要的步骤之前,还包括:
将所述数据库操作语句的标识符号,按序构建生成语法树;
解析所述语法树,获取各标识符号在所述语法树中的上下文信息;
根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理;
将修正处理后的所有标识符号,按序组合为所述请求摘要。
在一些实施例中,根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理的步骤包括:
根据标识符号的上下文信息,确定同一标识符号在不同位置的类型;
若同一标识符号在不同位置的类型不同,则将其标记为待修正标识符号;
根据所述待修正标识符号在各位置的类型,确定所述待修正标识符号对应位置的预设符号;
在替换处理后的标识符号中,将不同位置的待修正标识符号修正为对应位置的预设符号。
例如SQL语句为:create table t(id int not null,value varchar(10)defaultnull),经过词法分解得到标识符号,然后根据标识符号内容确定类型,并进行替换处理,将得到请求摘要:create table t(id int not null,value varchar(?)default null),该请求摘要包括2个标识符号“null”,在语法树中,第一个“null”的类型为关键词,第二个“null”的类型为用户参数,因此需要将第二个“null”替换为“?”,即最终得到请求摘要:create table t(id int not null,value varchar(?)default?)。
S204:基于预设摘要集合,对所述请求摘要进行验证。
在一些实施例中,本步骤包括:
调用所述预设摘要集合中的摘要白名单,所述摘要白名单包括合法请求摘要;
查找所述请求摘要是否存在于所述摘要白名单中;
若所述请求摘要存在于所述摘要白名单中,则所述请求摘要验证通过;
若所述请求摘要不存在于所述摘要白名单中,则所述请求摘要验证未通过。
因为请求摘要的内容比较长,若一一查找,将会出现查找缓慢的问题,因此为了加快查找速度,在一些实施例中,查找所述请求摘要是否存在于所述摘要白名单中的步骤包括:
获取所述请求摘要的第一索引值;
查找所述摘要白名单是否存在与所述第一索引值相等的第二索引值;所述摘要白名单还包括合法请求摘要对应的索引值;
若存在所述第二索引值,则所述请求摘要存在于所述摘要白名单;
若不存在所述第二索引值,则所述请求摘要不存在于所述摘要白名单。
在一些实施例中,索引值可以是哈希值,在进行查找时,可以采用二分查找法进行查找。例如,摘要白名单内的合法请求摘要对应的哈希值按照从大到小的顺序排序,共有n个合法请求摘要,那么就有n个哈希值。二分查找法也称为折半查找法,它充分利用了元素间的次序关系,采用分治策略,可在最坏的情况下用O(log n)完成搜索任务,它的基本思想是,将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x(请求摘要对应的哈希值)作比较,如果x=a[n/2]则找到x,算法终止,如果x我们只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列)。如果x>a[n/2],则我们只要在数组a的右半部继续搜索x。
在一些实施例中,在本步骤之前,还包括:
获取预设数据库操作请求的预设数据库操作语句;
对所述预设数据库操作语句进行分解处理,得到所述预设数据库操作语句的标识符号;
根据所述预设数据库操作语句的标识符号,构建所述预设数据库操作语句的预设请求摘要;
基于所述预设请求摘要,生成所述预设摘要集合。
本实施例涉及的构建预设数据库操作语句的预设请求摘要
S205:当所述请求摘要验证通过时,确定所述数据库操作请求合法。
本步骤是简单的确定步骤,实现简单,不再赘述。
相应的,图3是本发明实施例提供的数据库操作请求验证装置的结构示意图,请参阅图3,该数据库操作请求验证装置包括以下模块:
获取模块31,用于获取数据库操作请求的数据库操作语句;
处理模块32,用于对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
构建模块33,用于根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
验证模块34,用于基于预设摘要集合,对所述请求摘要进行验证;
确定模块35,用于当所述请求摘要验证通过时,确定所述数据库操作请求合法。
在一实施例中,构建模块33可以具体用于:根据词法解析规则,确定所述标识符号的内容;根据所述标识符号的内容,确定所述标识符号的类型,所述类型包括关键词、标识以及用户参数中的一种;将类型为预设类型的标识符号,替换为预设标识符号;将替换处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,构建模块33可以具体用于:当类型为用户参数的标识符号单个出现时,将该标识符号替换为第一预设符号;当类型为用户参数的标识符号连续多个出现时,将连续出现的多个标识符号替换为第二预设符号。
在一实施例中,构建模块33可以具体用于:将所述数据库操作语句的标识符号,按序构建生成语法树;解析所述语法树,获取各标识符号在所述语法树中的上下文信息;根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理;将修正处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,构建模块33可以具体用于:根据标识符号的上下文信息,确定同一标识符号在不同位置的类型;若同一标识符号在不同位置的类型不同,则将其标记为待修正标识符号;根据所述待修正标识符号在各位置的类型,确定所述待修正标识符号对应位置的预设符号;在替换处理后的标识符号中,将不同位置的待修正标识符号修正为对应位置的预设符号。
在一实施例中,验证模块34可以具体用于:调用所述预设摘要集合中的摘要白名单,所述摘要白名单包括合法请求摘要;查找所述请求摘要是否存在于所述摘要白名单中;若所述请求摘要存在于所述摘要白名单中,则所述请求摘要验证通过;若所述请求摘要不存在于所述摘要白名单中,则所述请求摘要验证未通过。
在一实施例中,验证模块34可以具体用于:获取所述请求摘要的第一索引值;查找所述摘要白名单是否存在与所述第一索引值相等的第二索引值;所述摘要白名单还包括合法请求摘要对应的索引值;若存在所述第二索引值,则所述请求摘要存在于所述摘要白名单;若不存在所述第二索引值,则所述请求摘要不存在于所述摘要白名单。
在一实施例中,验证模块34可以具体用于:获取预设数据库操作请求的预设数据库操作语句;对所述预设数据库操作语句进行分解处理,得到所述预设数据库操作语句的标识符号;根据所述预设数据库操作语句的标识符号,构建所述预设数据库操作语句的预设请求摘要;基于所述预设请求摘要,生成所述预设摘要集合。
现以简化的数据库***为例,对本发明进行说明,请参阅图4,该***包括用户终端41、开发者终端42、网关服务器43和数据服务器44,网关服务器43和数据服务器44在图1所示的网络架构中已经进行了说明,用户终端41是指用户发起数据库操作请求的终端设备,开发者终端42是指开发者进行功能开发维护的终端设备。为了便于描述,以下2个场景以用户发送验证为例进行说明。
场景1,用户使用用户终端41发起合法的用户验证。
具体的,如图5所示,本实施例提供的数据库操作请求验证方法包括以下步骤:
S501:开发者终端上传防火墙规则至网关服务器。
开发者在图7所示的界面设置白名单,其输入一个合法SQL请求:select*fromuser where username='aaa'and password='bbb',并作为防火墙规则,上传至网关服务器。
S502:网关服务器根据防火墙规则,生成白名单。
网关服务器采用图10所示的处理流程,将SQL语句:select*from user whereusername='aaa'and password='bbb',转换为合法请求摘要:select*from user whereusername='?'and password='?',然后采用哈希算法计算得到该请求摘要的哈希值hash1,作为该请求摘要的索引,一起存入白名单中。
具体的,合法SQL请求的SQL语句为select*from user where username='aaa'and password='bbb',经过词法解析模块会被分解为一个个的token:“select”、“*”、“from”、“user”、“where”、“username”、“=”、“'”、“aaa”、“'”、“and”、“password”、“=”、“'”、“bbb”、“'”,语法分析模块根据这些token构建出最终的语法树;然后词法解析模块将类型为用户参数的token“aaa”以及“bbb”均替换为“?”后,将所有的token记录到第一数组中;语法分析模块根据语法树,对第一数组中进行修正,得到第二数组,最后将第二数组内的token按序组合为合法请求摘要:select*from user where username='?'andpassword='?'。
针对哈希值的计算不再赘述。
S503:用户终端发送身份验证请求。
合法用户在图8所示的界面输入账户“123”以及密码“456”,用户终端生成一个用于进行身份验证的SQL请求:select*from user where username='123'and password='456',并发送至网关服务器。
S504:网关服务器构建身份验证请求的请求摘要。
网关服务器采用图10所示的处理流程,将身份验证请求的SQL语句:select*fromuser where username='123'and password='456',转换为请求摘要:select*from userwhere username='?'and password='?',然后采用哈希算法计算得到该请求摘要的哈希值hash2。
具体的,身份验证请求的SQL语句为select*from user where username='123'and password='456',经过词法解析模块会被分解为一个个的token:“select”、“*”、“from”、“user”、“where”、“username”、“=”、“'”、“123”、“'”、“and”、“password”、“=”、“'”、“456”、“'”,语法分析模块根据这些token构建出最终的语法树;然后词法解析模块将类型为用户参数的token“123”以及“456”均替换为“?”后,将所有的token记录到第一数组中;语法分析模块根据语法树,对第一数组中进行修正,得到第二数组,最后将第二数组内的token按序组合为身份验证请求的请求摘要:select*from user where username='?'and password='?'。
S505:网关服务器使用请求摘要的哈希值在白名单中进行匹配。
在本实施例中,身份验证请求的请求摘要与合法请求摘要的内容相同,对应的哈希值hash1与hash2也相同,因此本步骤的匹配结果为匹配成功。
S506:网关服务器发送身份验证请求至数据服务器进行身份验证。
本步骤仅仅是数据请求的转发,不再赘述。
场景2,用户使用用户终端41发起非法的用户验证。
具体的,如图6所示,本实施例提供的数据库操作请求验证方法包括以下步骤:
S601:开发者终端上传防火墙规则。
开发者在图7所示的界面设置白名单,其输入一个合法SQL请求:select*fromuser where username='aaa'and password='bbb',并作为防火墙规则,上传至网关服务器。
S602:网关服务器根据防火墙规则,生成白名单。
网关服务器采用图10所示的处理流程,将SQL语句:select*from user whereusername='aaa'and password='bbb',转换为合法请求摘要:select*from user whereusername='?'and password='?',然后采用哈希算法计算得到该请求摘要的哈希值hash1,作为该请求摘要的索引,一起存入白名单中。
具体的,合法SQL请求的SQL语句为select*from user where username='aaa'and password='bbb',经过词法解析模块会被分解为一个个的token:“select”、“*”、“from”、“user”、“where”、“username”、“=”、“'”、“aaa”、“'”、“and”、“password”、“=”、“'”、“bbb”、“'”,语法分析模块根据这些token构建出最终的语法树;然后词法解析模块将类型为用户参数的token“aaa”以及“bbb”均替换为“?”后,将所有的token记录到第一数组中;语法分析模块根据语法树,对第一数组中进行修正,得到第二数组,最后将第二数组内的token按序组合为合法请求摘要:select*from user where username='?'andpassword='?'。
针对哈希值的计算不再赘述。
S603:用户终端发送身份验证请求。
非法用户在图9所示的界面输入账户“myuser or'foo'='foo'--”以及密码“123456”,用户终端生成一个用于进行身份验证的SQL请求:select*from user whereusername='myuser'or'foo'='foo'--'and password='123456',并发送至网关服务器。
S604:网关服务器构建身份验证请求的请求摘要。
网关服务器采用图10所示的处理流程,将身份验证请求的SQL语句:select*fromuser where username='myuser'or'foo'='foo'--'and password='123456',转换为请求摘要:select*from user where username='?'or'?'='?'--and password='?',然后采用哈希算法计算得到该请求摘要的哈希值hash3。
具体的,身份验证请求的SQL语句为select*from user where username='myuser'or'foo'='foo'--'and password='123456',经过词法解析模块会被分解为一个个的token:“select”、“*”、“from”、“user”、“where”、“username”、“=”、“'”、“myuser”、“'”、“or”、“'”、“foo”、“'”、“=”、“'”、“foo”、“'”、“--”、“and”、“password”、“=”、“'”、“123456”、“'”,语法分析模块根据这些token构建出最终的语法树;然后词法解析模块将类型为用户参数的token“myuser”、“foo”以及“123456”均替换为“?”后,将所有的token记录到第一数组中;语法分析模块根据语法树,对第一数组中进行修正,得到第二数组,最后将第二数组内的token按序组合为身份验证请求的请求摘要:select*from user whereusername='?'or'?'='?'--and password='?'。
S605:网关服务器使用请求摘要的哈希值在白名单中进行匹配。
在本实施例中,身份验证请求的请求摘要与合法请求摘要的内容不相同,对应的哈希值hash1和hash3也不相同,因此本步骤的匹配结果为匹配不成功。
S606:网关服务器不转发身份验证请求至数据服务器。
本步骤可以直接丢弃这个身份验证请求,或者将其加入黑名单。
相应的,本发明实施例还提供一种终端,如图11所示,该终端可以包括射频(RF,Radio Frequency)电路1101、包括有一个或一个以上计算机可读存储介质的存储器1102、输入单元1103、显示单元1104、传感器1105、音频电路1106、无线保真(WiFi,WirelessFidelity)模块1107、包括有一个或者一个以上处理核心的处理器1108、以及电源1109等部件。本领域技术人员可以理解,图11中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路1101可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器1108处理;另外,将涉及上行的数据发送给基站。通常,RF电路1101包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路1101还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器1102可用于存储软件程序以及模块,处理器1108通过运行存储在存储器1102的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1102可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1102还可以包括存储器控制器,以提供处理器1108和输入单元1103对存储器1102的访问。
输入单元1103可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元1103可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。在一实施例中,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1108,并能接收处理器1108发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元1103还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1104可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元1104可包括显示面板,在一实施例中,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器1108以确定触摸事件的类型,随后处理器1108根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图11中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器1105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1106、扬声器,传声器可提供用户与终端之间的音频接口。音频电路1106可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路1106接收后转换为音频数据,再将音频数据输出处理器1108处理后,经RF电路1101以发送给比如另一终端,或者将音频数据输出至存储器1102以便进一步处理。音频电路1106还可能包括耳塞插孔,以提供外设耳机与终端的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块1107可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图11示出了WiFi模块1107,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1108是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1102内的软件程序和/或模块,以及调用存储在存储器1102内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。在一实施例中,处理器1108可包括一个或多个处理核心;优选的,处理器1108可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1108中。
终端还包括给各个部件供电的电源1109(比如电池),优选的,电源可以通过电源管理***与处理器1108逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源1109还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器1108会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1102中,并由处理器1108来运行存储在存储器1102中的应用程序,从而实现各种功能:
获取数据库操作请求的数据库操作语句;
对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
基于预设摘要集合,对所述请求摘要进行验证;
当所述请求摘要验证通过时,确定所述数据库操作请求合法。
在一实施例中,实现功能:根据词法解析规则,确定所述标识符号的内容;根据所述标识符号的内容,确定所述标识符号的类型,所述类型包括关键词、标识以及用户参数中的一种;将类型为预设类型的标识符号,替换为预设标识符号;将替换处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,实现功能:当类型为用户参数的标识符号单个出现时,将该标识符号替换为第一预设符号;当类型为用户参数的标识符号连续多个出现时,将连续出现的多个标识符号替换为第二预设符号。
在一实施例中,实现功能:将所述数据库操作语句的标识符号,按序构建生成语法树;解析所述语法树,获取各标识符号在所述语法树中的上下文信息;根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理;将修正处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,实现功能:根据标识符号的上下文信息,确定同一标识符号在不同位置的类型;若同一标识符号在不同位置的类型不同,则将其标记为待修正标识符号;根据所述待修正标识符号在各位置的类型,确定所述待修正标识符号对应位置的预设符号;在替换处理后的标识符号中,将不同位置的待修正标识符号修正为对应位置的预设符号。
在一实施例中,实现功能:调用所述预设摘要集合中的摘要白名单,所述摘要白名单包括合法请求摘要;查找所述请求摘要是否存在于所述摘要白名单中;若所述请求摘要存在于所述摘要白名单中,则所述请求摘要验证通过;若所述请求摘要不存在于所述摘要白名单中,则所述请求摘要验证未通过。
在一实施例中,实现功能:获取所述请求摘要的第一索引值;查找所述摘要白名单是否存在与所述第一索引值相等的第二索引值;所述摘要白名单还包括合法请求摘要对应的索引值;若存在所述第二索引值,则所述请求摘要存在于所述摘要白名单;若不存在所述第二索引值,则所述请求摘要不存在于所述摘要白名单。
在一实施例中,实现功能:获取预设数据库操作请求的预设数据库操作语句;对所述预设数据库操作语句进行分解处理,得到所述预设数据库操作语句的标识符号;根据所述预设数据库操作语句的标识符号,构建所述预设数据库操作语句的预设请求摘要;基于所述预设请求摘要,生成所述预设摘要集合。
相应的,本发明实施例还提供一种服务器,如图12所示,该服务器可以包括有一个或一个以上计算机可读存储介质的存储器1201、、包括有一个或者一个以上处理核心的处理器1202等部件。本领域技术人员可以理解,图12中示出的结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
存储器1201可用于存储软件程序以及模块,处理器1202通过运行存储在存储器1201的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器1201可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1201可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器1201还可以包括存储器控制器,以提供处理器1202对存储器1201的访问。
具体在本实施例中,服务器中的处理器1202会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器1201中,并由处理器1202来运行存储在存储器1201中的应用程序,从而实现各种功能:
获取数据库操作请求的数据库操作语句;
对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
基于预设摘要集合,对所述请求摘要进行验证;
当所述请求摘要验证通过时,确定所述数据库操作请求合法。
在一实施例中,实现功能:根据词法解析规则,确定所述标识符号的内容;根据所述标识符号的内容,确定所述标识符号的类型,所述类型包括关键词、标识以及用户参数中的一种;将类型为预设类型的标识符号,替换为预设标识符号;将替换处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,实现功能:当类型为用户参数的标识符号单个出现时,将该标识符号替换为第一预设符号;当类型为用户参数的标识符号连续多个出现时,将连续出现的多个标识符号替换为第二预设符号。
在一实施例中,实现功能:将所述数据库操作语句的标识符号,按序构建生成语法树;解析所述语法树,获取各标识符号在所述语法树中的上下文信息;根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理;将修正处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,实现功能:根据标识符号的上下文信息,确定同一标识符号在不同位置的类型;若同一标识符号在不同位置的类型不同,则将其标记为待修正标识符号;根据所述待修正标识符号在各位置的类型,确定所述待修正标识符号对应位置的预设符号;在替换处理后的标识符号中,将不同位置的待修正标识符号修正为对应位置的预设符号。
在一实施例中,实现功能:调用所述预设摘要集合中的摘要白名单,所述摘要白名单包括合法请求摘要;查找所述请求摘要是否存在于所述摘要白名单中;若所述请求摘要存在于所述摘要白名单中,则所述请求摘要验证通过;若所述请求摘要不存在于所述摘要白名单中,则所述请求摘要验证未通过。
在一实施例中,实现功能:获取所述请求摘要的第一索引值;查找所述摘要白名单是否存在与所述第一索引值相等的第二索引值;所述摘要白名单还包括合法请求摘要对应的索引值;若存在所述第二索引值,则所述请求摘要存在于所述摘要白名单;若不存在所述第二索引值,则所述请求摘要不存在于所述摘要白名单。
在一实施例中,实现功能:获取预设数据库操作请求的预设数据库操作语句;对所述预设数据库操作语句进行分解处理,得到所述预设数据库操作语句的标识符号;根据所述预设数据库操作语句的标识符号,构建所述预设数据库操作语句的预设请求摘要;基于所述预设请求摘要,生成所述预设摘要集合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文针对资源管理方法的详细描述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种方法中的步骤。例如,该指令可以执行如下步骤:
获取数据库操作请求的数据库操作语句;
对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
基于预设摘要集合,对所述请求摘要进行验证;
当所述请求摘要验证通过时,确定所述数据库操作请求合法。
在一实施例中,实现功能:根据词法解析规则,确定所述标识符号的内容;根据所述标识符号的内容,确定所述标识符号的类型,所述类型包括关键词、标识以及用户参数中的一种;将类型为预设类型的标识符号,替换为预设标识符号;将替换处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,实现功能:当类型为用户参数的标识符号单个出现时,将该标识符号替换为第一预设符号;当类型为用户参数的标识符号连续多个出现时,将连续出现的多个标识符号替换为第二预设符号。
在一实施例中,实现功能:将所述数据库操作语句的标识符号,按序构建生成语法树;解析所述语法树,获取各标识符号在所述语法树中的上下文信息;根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理;将修正处理后的所有标识符号,按序组合为所述请求摘要。
在一实施例中,实现功能:根据标识符号的上下文信息,确定同一标识符号在不同位置的类型;若同一标识符号在不同位置的类型不同,则将其标记为待修正标识符号;根据所述待修正标识符号在各位置的类型,确定所述待修正标识符号对应位置的预设符号;在替换处理后的标识符号中,将不同位置的待修正标识符号修正为对应位置的预设符号。
在一实施例中,实现功能:调用所述预设摘要集合中的摘要白名单,所述摘要白名单包括合法请求摘要;查找所述请求摘要是否存在于所述摘要白名单中;若所述请求摘要存在于所述摘要白名单中,则所述请求摘要验证通过;若所述请求摘要不存在于所述摘要白名单中,则所述请求摘要验证未通过。
在一实施例中,实现功能:获取所述请求摘要的第一索引值;查找所述摘要白名单是否存在与所述第一索引值相等的第二索引值;所述摘要白名单还包括合法请求摘要对应的索引值;若存在所述第二索引值,则所述请求摘要存在于所述摘要白名单;若不存在所述第二索引值,则所述请求摘要不存在于所述摘要白名单。
在一实施例中,实现功能:获取预设数据库操作请求的预设数据库操作语句;对所述预设数据库操作语句进行分解处理,得到所述预设数据库操作语句的标识符号;根据所述预设数据库操作语句的标识符号,构建所述预设数据库操作语句的预设请求摘要;基于所述预设请求摘要,生成所述预设摘要集合。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种资源管理方法中的步骤,因此,可以实现本发明实施例所提供的任一种资源管理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种数据库操作请求验证方法、装置、服务器及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种数据库操作请求验证方法,其特征在于,包括:
获取数据库操作请求的数据库操作语句;
对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
基于预设摘要集合,对所述请求摘要进行验证;
当所述请求摘要验证通过时,确定所述数据库操作请求合法。
2.根据权利要求1所述的数据库操作请求验证方法,其特征在于,所述根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要的步骤包括:
根据词法解析规则,确定所述标识符号的内容;
根据所述标识符号的内容,确定所述标识符号的类型,所述类型包括关键词、标识以及用户参数中的一种;
将类型为预设类型的标识符号,替换为预设标识符号;
将替换处理后的所有标识符号,按序组合为所述请求摘要。
3.根据权利要求2所述的数据库操作请求验证方法,其特征在于,所述预设类型包括用户参数。
4.根据权利要求3所述的数据库操作请求验证方法,其特征在于,所述将类型为预设类型的标识符号,替换为预设标识符号的步骤包括:
当类型为用户参数的标识符号单个出现时,将该标识符号替换为第一预设符号;
当类型为用户参数的标识符号连续多个出现时,将连续出现的多个标识符号替换为第二预设符号。
5.根据权利要求2所述的数据库操作请求验证方法,其特征在于,在将替换处理后的所有标识符号,按序组合为所述请求摘要的步骤之前,还包括:
将所述数据库操作语句的标识符号,按序构建生成语法树;
解析所述语法树,获取各标识符号在所述语法树中的上下文信息;
根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理;
将修正处理后的所有标识符号,按序组合为所述请求摘要。
6.根据权利要求5所述的数据库操作请求验证方法,其特征在于,所述根据各标识符号的上下文信息,对替换处理后的所有标识符号进行修正处理的步骤包括:
根据标识符号的上下文信息,确定同一标识符号在不同位置的类型;
若同一标识符号在不同位置的类型不同,则将其标记为待修正标识符号;
根据所述待修正标识符号在各位置的类型,确定所述待修正标识符号对应位置的预设符号;
在替换处理后的标识符号中,将不同位置的待修正标识符号修正为对应位置的预设符号。
7.根据权利要求1所述的数据库操作请求验证方法,其特征在于,在基于预设摘要集合,对所述请求摘要进行验证的步骤之前,还包括:
获取预设数据库操作请求的预设数据库操作语句;
对所述预设数据库操作语句进行分解处理,得到所述预设数据库操作语句的标识符号;
根据所述预设数据库操作语句的标识符号,构建所述预设数据库操作语句的预设请求摘要;
基于所述预设请求摘要,生成所述预设摘要集合。
8.根据权利要求1至7任一项所述的数据库操作请求验证方法,其特征在于,所述基于预设摘要集合,对所述请求摘要进行验证的步骤包括:
调用所述预设摘要集合中的摘要白名单,所述摘要白名单包括合法请求摘要;
查找所述请求摘要是否存在于所述摘要白名单中;
若所述请求摘要存在于所述摘要白名单中,则所述请求摘要验证通过;
若所述请求摘要不存在于所述摘要白名单中,则所述请求摘要验证未通过。
9.根据权利要求8所述的数据库操作请求验证方法,其特征在于,所述查找所述请求摘要是否存在于所述摘要白名单中的步骤包括:
获取所述请求摘要的第一索引值;
查找所述摘要白名单是否存在与所述第一索引值相等的第二索引值;所述摘要白名单还包括合法请求摘要对应的索引值;
若存在所述第二索引值,则所述请求摘要存在于所述摘要白名单;
若不存在所述第二索引值,则所述请求摘要不存在于所述摘要白名单。
10.一种数据库操作请求验证装置,其特征在于,包括:
获取模块,用于获取数据库操作请求的数据库操作语句;
处理模块,用于对所述数据库操作语句进行分解处理,得到所述数据库操作语句的标识符号;
构建模块,用于根据所述数据库操作语句的标识符号,构建所述数据库操作语句的请求摘要;
验证模块,用于基于预设摘要集合,对所述请求摘要进行验证;
确定模块,用于当所述请求摘要验证通过时,确定所述数据库操作请求合法。
11.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的数据库操作请求验证方法中的步骤。
12.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的数据库操作请求验证方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810501913.XA CN108763887A (zh) | 2018-05-23 | 2018-05-23 | 数据库操作请求验证方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810501913.XA CN108763887A (zh) | 2018-05-23 | 2018-05-23 | 数据库操作请求验证方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108763887A true CN108763887A (zh) | 2018-11-06 |
Family
ID=64004833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810501913.XA Pending CN108763887A (zh) | 2018-05-23 | 2018-05-23 | 数据库操作请求验证方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763887A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710655A (zh) * | 2018-11-09 | 2019-05-03 | 中国平安人寿保险股份有限公司 | 数据库查询方法、装置、终端设备及存储介质 |
CN110427754A (zh) * | 2019-08-12 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络应用攻击检测方法、装置、设备及存储介质 |
CN110781234A (zh) * | 2019-10-24 | 2020-02-11 | 北京锐安科技有限公司 | Trs数据库的检索方法、装置、设备及存储介质 |
CN111857721A (zh) * | 2020-03-30 | 2020-10-30 | 马上消费金融股份有限公司 | Sql语句的验证方法、数据获取方法、设备及存储装置 |
CN112613302A (zh) * | 2020-12-31 | 2021-04-06 | 天津南大通用数据技术股份有限公司 | 基于数据库执行select语句的子句的动态可信判定方法 |
CN112613301A (zh) * | 2020-12-31 | 2021-04-06 | 天津南大通用数据技术股份有限公司 | 一种基于数据库执行select语句的动态可信判定方法 |
CN112685779A (zh) * | 2020-12-31 | 2021-04-20 | 天津南大通用数据技术股份有限公司 | 基于数据库执行select语句主要关键字的静态可信判定方法 |
CN112989398A (zh) * | 2021-05-18 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN112989403A (zh) * | 2019-12-18 | 2021-06-18 | 拓尔思天行网安信息技术有限责任公司 | 一种数据库破坏的检测方法、装置、设备及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526947A (zh) * | 2009-04-23 | 2009-09-09 | 山东中创软件商用中间件股份有限公司 | 应用正则表达式防sql注入技术 |
CN101609493A (zh) * | 2009-07-21 | 2009-12-23 | 国网电力科学研究院 | 一种基于自学习的数据库sql注入防护方法 |
CN102682047A (zh) * | 2011-10-18 | 2012-09-19 | 国网电力科学研究院 | 一种混合的sql注入防护方法 |
CN104008349A (zh) * | 2014-04-28 | 2014-08-27 | 国家电网公司 | 数据库安全访问控制方法和*** |
US20160028774A1 (en) * | 2013-11-27 | 2016-01-28 | At&T Intellectual Property I, L.P. | Data Access Policies |
CN107292170A (zh) * | 2016-04-05 | 2017-10-24 | 阿里巴巴集团控股有限公司 | Sql注入攻击的检测方法及装置、*** |
CN107566363A (zh) * | 2017-08-30 | 2018-01-09 | 杭州安恒信息技术有限公司 | 一种基于机器学习的sql注入攻击防护方法 |
CN107784228A (zh) * | 2016-08-31 | 2018-03-09 | 百度在线网络技术(北京)有限公司 | Sql注入攻击检测方法及装置 |
-
2018
- 2018-05-23 CN CN201810501913.XA patent/CN108763887A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101526947A (zh) * | 2009-04-23 | 2009-09-09 | 山东中创软件商用中间件股份有限公司 | 应用正则表达式防sql注入技术 |
CN101609493A (zh) * | 2009-07-21 | 2009-12-23 | 国网电力科学研究院 | 一种基于自学习的数据库sql注入防护方法 |
CN102682047A (zh) * | 2011-10-18 | 2012-09-19 | 国网电力科学研究院 | 一种混合的sql注入防护方法 |
US20160028774A1 (en) * | 2013-11-27 | 2016-01-28 | At&T Intellectual Property I, L.P. | Data Access Policies |
CN104008349A (zh) * | 2014-04-28 | 2014-08-27 | 国家电网公司 | 数据库安全访问控制方法和*** |
CN107292170A (zh) * | 2016-04-05 | 2017-10-24 | 阿里巴巴集团控股有限公司 | Sql注入攻击的检测方法及装置、*** |
CN107784228A (zh) * | 2016-08-31 | 2018-03-09 | 百度在线网络技术(北京)有限公司 | Sql注入攻击检测方法及装置 |
CN107566363A (zh) * | 2017-08-30 | 2018-01-09 | 杭州安恒信息技术有限公司 | 一种基于机器学习的sql注入攻击防护方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710655B (zh) * | 2018-11-09 | 2023-12-05 | 中国平安人寿保险股份有限公司 | 数据库查询方法、装置、终端设备及存储介质 |
CN109710655A (zh) * | 2018-11-09 | 2019-05-03 | 中国平安人寿保险股份有限公司 | 数据库查询方法、装置、终端设备及存储介质 |
CN110427754A (zh) * | 2019-08-12 | 2019-11-08 | 腾讯科技(深圳)有限公司 | 网络应用攻击检测方法、装置、设备及存储介质 |
CN110427754B (zh) * | 2019-08-12 | 2024-02-13 | 腾讯科技(深圳)有限公司 | 网络应用攻击检测方法、装置、设备及存储介质 |
CN110781234A (zh) * | 2019-10-24 | 2020-02-11 | 北京锐安科技有限公司 | Trs数据库的检索方法、装置、设备及存储介质 |
CN112989403B (zh) * | 2019-12-18 | 2023-09-29 | 拓尔思天行网安信息技术有限责任公司 | 一种数据库破坏的检测方法、装置、设备及存储介质 |
CN112989403A (zh) * | 2019-12-18 | 2021-06-18 | 拓尔思天行网安信息技术有限责任公司 | 一种数据库破坏的检测方法、装置、设备及存储介质 |
CN111857721B (zh) * | 2020-03-30 | 2021-09-17 | 马上消费金融股份有限公司 | Sql语句的验证方法、数据获取方法、设备及存储装置 |
CN111857721A (zh) * | 2020-03-30 | 2020-10-30 | 马上消费金融股份有限公司 | Sql语句的验证方法、数据获取方法、设备及存储装置 |
CN112685779A (zh) * | 2020-12-31 | 2021-04-20 | 天津南大通用数据技术股份有限公司 | 基于数据库执行select语句主要关键字的静态可信判定方法 |
CN112613302B (zh) * | 2020-12-31 | 2023-08-18 | 天津南大通用数据技术股份有限公司 | 基于数据库执行select语句的子句的动态可信判定方法 |
CN112613301A (zh) * | 2020-12-31 | 2021-04-06 | 天津南大通用数据技术股份有限公司 | 一种基于数据库执行select语句的动态可信判定方法 |
CN112613302A (zh) * | 2020-12-31 | 2021-04-06 | 天津南大通用数据技术股份有限公司 | 基于数据库执行select语句的子句的动态可信判定方法 |
CN112989398B (zh) * | 2021-05-18 | 2021-07-30 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
CN112989398A (zh) * | 2021-05-18 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 区块链网络的数据处理方法、装置、计算机设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763887A (zh) | 数据库操作请求验证方法、装置、服务器及存储介质 | |
CN103634294B (zh) | 信息验证方法和装置 | |
CN104462119B (zh) | 数据迁移方法及装置 | |
US20160241589A1 (en) | Method and apparatus for identifying malicious website | |
CN106202441A (zh) | 基于关系型数据库的数据处理方法、装置和*** | |
CN108549538A (zh) | 一种代码检测方法、装置、存储介质及测试终端 | |
CN103678502B (zh) | 信息收藏方法和装置 | |
CN104852885A (zh) | 一种进行验证码验证的方法、装置和*** | |
CN107766358A (zh) | 一种页面分享的方法及相关装置 | |
CN110058850A (zh) | 一种应用的开发方法、装置以及存储介质 | |
CN104618223A (zh) | 一种信息推荐的管理方法、装置和*** | |
CN106529332B (zh) | 一种移动终端的权限控制方法、装置及移动终端 | |
CN107992498B (zh) | 一种将数据导入数据仓库的方法及*** | |
CN106293738A (zh) | 一种表情图像的更新方法及装置 | |
CN107451046B (zh) | 一种检测线程的方法及终端 | |
CN107885718A (zh) | 语义确定方法及装置 | |
CN107277031A (zh) | 一种网络视频下载方法、装置、存储介质和终端 | |
CN109254972A (zh) | 一种离线命令词库更新方法、终端及计算机可读存储介质 | |
WO2014146450A1 (en) | Method, device and system for data searching | |
CN114115895A (zh) | 一种代码查询方法、装置、电子设备和存储介质 | |
CN106681884A (zh) | 一种***调用的监控方法和装置 | |
CN106708501B (zh) | 活动监控方法及装置 | |
CN106709342B (zh) | 恶意程序检测方法及装置 | |
CN108304369A (zh) | 一种文件类型的识别方法和装置 | |
CN104967598B (zh) | 一种用户多媒体权限资讯的获取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20181106 |
|
RJ01 | Rejection of invention patent application after publication |