CN103338208B - 一种sql注入防御的方法和系统 - Google Patents
一种sql注入防御的方法和系统 Download PDFInfo
- Publication number
- CN103338208B CN103338208B CN201310296901.5A CN201310296901A CN103338208B CN 103338208 B CN103338208 B CN 103338208B CN 201310296901 A CN201310296901 A CN 201310296901A CN 103338208 B CN103338208 B CN 103338208B
- Authority
- CN
- China
- Prior art keywords
- sql
- database
- character
- injection
- clause
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种针对数据库的SQL注入防御的方法,包括如下步骤:(a)接收来自应用系统发出的访问数据库的SQL语句;(b)对SQL语句进行注入判断和检查,若发现SQL注入,则对该SQL注入进行拦截,记录错误,并向所述应用系统返回异常消息;若发现并非为SQL注入,则查询出该SQL语句所需要访问的相应数据库操作的接口规范,拼接出符合该数据库操作接口规范的SQL语句;(c)将步骤(b)拼接出的规范的SQL语句发送到相应的数据库进行数据库操作;和(d)将查询后的结果返回给应用系统。根据本发明的方法设置数据库代理服务器,用运维手段切断除了数据库代理服务器以外的任何应用系统对数据库的访问权限,防止了SQL注入。
Description
技术领域
本发明涉及计算机网络信息安全防护领域,特别涉及一种改进的SQL注入防御的方法和系统。
背景技术
随着Web应用以及浏览器/服务器(B/S)模式应用的普及,Web应用程序的安全性问题也日益受到关注。SQL注入攻击是最为常见的Web应用程序攻击技术,SQL注入攻击所带来的安全破坏也是不可弥补的。所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造或者影响动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。
SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:不当的类型处理;不安全的数据库配置;不合理的查询集处理;不当的错误处理;转义字符处理不合适;和多个提交处理不当。目前,现有常见的SQL注入防御技术是关键词方法,即检测用户提交的SQL语句中的关键字。这种方法虽然简单,但是有两个大的问题。一个是关键字漏判的问题,根据SQL语句的灵活性,有经验的攻击者很容易绕过服务器侧预设的关键字进行攻击,降低了SQL注入检测的准确性。二是误判关键字的问题。关键词方法的误报率很高,尤其是一些外文的网站,用户提交大段的英文后,很容易匹配上预设的关键字。
另外一种改进的SQL注入防御技术称为知识库方法。即在安全环境下学习合法的SQL语句,建立合法SQL语句知识库,当服务器检测到用户提交的SQL语句与知识库中合法SQL语句不匹配时,则判定存在SQL注入企图。这种方法基于已知的安全SQL,但受限于SQL的完整性,其缺点在于不仅需要“充分”的SQL供系统学习已知的SQL语法树,而如何定义“充分”是很难的。如果需要大量的学习达到所谓“充分”的标准,则学习成本和执行效率都会受到严重的影响。另外,知识库方法不能穷举所有的SQL语法树,因此也就不能避免误报。目前只能通过需要不断更新合法SQL语句知识库来减少误报的发生,非常繁琐,效率很低。
因此,需要一种能有效的SQL注入防御技术能够解决上述问题,快速高效地识别SQL注入。
发明内容
本发明的目的在于提供一种针对数据库的SQL注入防御的方法,所述方法包括如下步骤:(a)接收来自应用系统发出的访问数据库的SQL语句;(b)对SQL语句进行注入判断和检查,若发现SQL注入,则对该SQL注入进行拦截,记录错误,并向所述应用系统返回异常消息;若发现并非为SQL注入,则查询出该SQL语句所需要访问的相应数据库操作的接口规范,拼接出符合该数据库操作接口规范的SQL语句;(c)将步骤(b)拼接出的规范的SQL语句发送到相应的数据库进行数据库操作;和(d)将查询后的结果返回给应用系统。
优选地,所述应用系统是客户端/服务器或浏览器/服务器模式。
优选地,所述应用系统是客户端/服务器或浏览器/服务器模式。
优选地,为所述应用系统提供的数据库操作类型包括选择、插入、更新和删除。
优选地,所述数据库操作的接口规范包括数据库操作接口所接受的数据库、表、合法语法格式。
优选地,所述对SQL语句进行注入判断和检查基于如下规范:(a)当前数据库操作接口允许操作的数据库、表;(b)当前数据库操作接口的子句中的语法规则;以及(c)当前数据库操作接口的子句中的语义规则。
优选地,所述规范(b)中的语法规则是将SQL子句转化成转码字符的序列从而构造语法转码表。
优选地,对所述转换码后的字符进行逐字符的扫描以判断是否为SQL注入。
优选地,判断所扫描的字符是否是数字、单引号、双引号、关键字符或空格中的任意一者。
优选地,所述步骤(b)的拼接是针对选择、插入、更新和删除四种数据库操作分别进行的拼接。
根据本发明的方法设置数据库代理服务器,用运维手段切断除了数据库代理服务器以外的任何应用系统对数据库的访问权限,提高了数据库访问的安全性,防止了SQL注入。
应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
图1示意性地示出了根据本发明的SQL注入防御系统的系统框图;
图2示出了根据本发明的SQL注入防御方法流程图;
图3示出了SQL注入检查及子句检查的算法流程图。
图4示出了拼接规范SQL语句的算法流程图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
根据本发明的SQL注入防御的方法和系统,在SQL语句访问数据库之前,设置了提供数据库查询的数据库代理服务器,该数据库代理服务器通过客户端/服务器(C/S)、浏览器/服务器(B/S)等模式为需要以SQL语句对数据库进行访问的应用系统提供了指定的数据库操作接口。根据本发明,通过运维手段切断除了数据库代理服务器以外的任何应用系统对数据库的访问权限,使得所有的应用系统的数据库查询都只通过该数据库代理服务器。根据本发明的数据库代理服务器可以预先进行SQL注入检测,判断SQL语句是否为SQL注入,并基于业务设置安全且简化的SQL语法,从而提高数据库访问的安全性,防止SQL注入。
图1示意性地示出了根据本发明的SQL注入防御系统的系统框图。用于实现根据本发明的SQL注入防御功能的系统100包括应用系统110、数据库代理服务器120以及数据库130。应用系统110发出SQL语句请求访问数据库130,应用系统110可以是客户端/服务器(C/S)或浏览器/服务器(B/S)模式,例如,可以是终端用户通过web浏览器的方式访问web服务器,从而发送SQL语句请求访问数据库130。
数据库130包含至少一个数据库。图1中仅示意性地示出了第一数据库131、第二数据库132和第n数据库139。根据本发明的系统和方法可应用于具有不同操作接口规范的数据库。
数据库代理服务器120包含接口模块121、SQL注入检测模块122、数据库访问配置模块123和SQL构造模块124。数据库代理服务器120通过接口模块121接收到应用系统110发出的SQL语句,然后通过SQL注入检测模块122进行判断和检查,若发现SQL注入,则对该SQL注入进行拦截,记录错误,同时向应用系统110返回异常消息。若判断SQL语句并非为SQL注入,则访问数据库访问配置模块123,查询出该SQL语句所需要访问的相应数据库操作的接口规范,然后利用SQL构造模块124拼接出符合该数据库操作接口规范的SQL语句。所拼接出的规范的SQL语句发送到相应的数据库130进行数据库查询操作。查询后的结果再通过通过接口模块121返回给应用系统110,完成该SQL语句的请求。
数据库代理服务器120可通过C/S,B/S等模式对应用系统110提供指定的数据库操作接口,对数据库的操作类型包括选择、插入、更新和删除,例如可采用如下语句格式:
Select(DBName,TableName,SELECT子句,WHERE子句)
Insert(DBName,TableName,COLUMN子句,VALUE子句)
Update(DBName,TableName,SET子句,WHERE子句)
Delete(DBName,TableName,WHERE子句)
SQL注入检测模块122使用根据本发明的标准SQL注入检测算法进行SQL注入检测,该算法将在下文详细说明。SQL注入检测模块122根据各个数据库的配置对各个数据库操作接口的参数进行检查。SQL注入检测模块122的配置是由各个数据库的管理员根据数据库访问规范以及业务需求进行的。数据库访问配置模块123存储有各个数据库的查询标准,包括各个数据库操作接口所接受的数据库、表、合法语法格式等。
图2示出了根据本发明的SQL注入防御方法流程图。如图2所示,应用系统110发出SQL语句(205)。根据本发明的SQL注入防御方法,SQL语句必须先通过数据库代理服务器120处理后才能访问数据库130。数据库代理服务器120接收到应用系统110发出的SQL语句后,通过SQL注入检测模块122进行判断和检查,判断SQL语句是否为SQL注入(210)。若发现SQL注入,则对该SQL注入进行拦截,记录错误(215),然后向应用系统110返回异常消息(220)。若数据库代理服务器120判断出SQL语句并非为SQL注入,则通过访问数据库访问配置模块123,查询出该SQL语句所需要访问的相应数据库操作的接口规范,然后利用SQL构造模块124拼接出符合该数据库操作接口规范的SQL语句(225)。所拼接出的规范的SQL语句发送到相应的数据库130进行数据库查询操作(230)。查询后的结果再返回给数据库代理服务器120(235),然后返回给应用系统110(240),完成该SQL语句的请求。
由于SQL语句的灵活性,因此会产生出复杂的SQL语句。复杂的SQL通常包含嵌套子查询,联合查询以及SQL库函数等成分,而这些复杂的成分并不是必须让数据库去计算的,而是转移到应用层去完成。这是由于数据库通常是所有上层业务系统的核心,而避免复杂的SQL可以有效降低数据库的执行压力,提高整体的稳定性。同时可以更容易地定义什么样的SQL是正常的。根据本发明的方法,SQL的定义规范可以按照如下方式进行:
1.避免库函数
2.避免不合理设计导致的低效的联合查询。应用层做单表查询,然后自己完成
联合操作。
3.避免低效的嵌套子查询。
根据本发明的方法定义了一套基于业务的简化SQL语法,以克服SQL的灵活性带来的缺陷,进而定义出安全的SQL,因此注入的SQL可以很容易被区分出来,从而提高整体的系统安全性。
根据本发明的标准SQL注入检测算法是通过数据库管理员定义各个数据库操作接口的各个参数的检查语法规则。这些规范包括如下:
1、当前数据库操作接口允许操作的数据库、表;
2、当前数据库操作接口的子句中的语法规则;以及
3、当前数据库操作接口的子句中的语义规则。
在规范1中,对于特定数据库中特定的核心表可以不开放增删改查操作。
在规范2中,子句中的语法规则可以具体如下:
(1)SQL语句必须能够解析成该集合元素拼接成的串,即,
{限定的字段名,数字串,字符串,空白字符,限定的SQL关键词}
(2)限定的字段名限定哪些字段可以被当前方法查询。根据本发明的数据库代理服务器可以通过此配置定义字段级别的访问权限。
(3)限定的SQL关键词限定子句中允许的关键词,这些关键词例如可以是"notbetween"、"between"、"and"、"or"、"not in"、"in"、"is null"、"is not null"、">="、"<="、"!="、"<>"、"="、"not like"、"like"等等。不同表的不同子句可以根据需求做各自的定义,比如Delete操作限定where子句中只能包含"=",不能包含">=","or"等,以避免误删除或者恶意删除。
以上的规范2的语法规则通过下面的“语法转码表”来进行定义:
关键词 | 转码字符 |
not between | 'B' |
between | 'B' |
and | 'A' |
or | 'C' |
not in | 'I' |
in | 'I' |
is null | 'E' |
is not null | 'E' |
>= | 'R' |
<= | 'R' |
!= | 'R' |
<> | 'R' |
= | 'R' |
not like | 'R' |
like | 'R' |
( | 'Q' |
) | 'Q' |
, | 'C' |
<表字段> | 'F' |
字符串 | 'S' |
数字串 | 'N' |
表1 语法转码表
优选地,上述表1中的转码字符可以用大写字母等字符表示,目的是方面后面的语义规则检查。
通过上述的语法转码表中规定的语法规则,将SQL子句转化成转码字符的序列。这里不对SQL子句的语法完整性进行检查,而是待将检测后的SQL子句发送至数据库后,由数据库对SQL子句的语法完整性进行检查。
在规范3中,当前数据库操作接口的子句中的语义规则定义如下:
(1)定义当前子句必须包含的转码字符。例如,Where子集中必须包含"表字段"的转码字符。
(2)定义"in(,,,,)"中最大的元素个数,防止一次查询大量数据的不规范或者恶意遍历。
(3)定义不正常的操作。例如,出现转码字符序列SRS或者SRN表示子句中存在数字串或者字符串之间的无意义比较。
以上SQL注入检查及子句检查的算法流程图如图3所示。输入SQL子句,以及数据库、表名、操作接口。在步骤301,将所输入的SQL子句,以及数据库、表名、操作接口全部转化为小写。在步骤302,根据数据库、表名、操作接口、子句,获得定义的语法转码表,然后在步骤303中,根据语法转码表,对输入的SQL子句按语法转码表的每一项执行替换操作,得到转码后的序列。
接着在步骤304中对得到转换码后的字符进行逐字符的扫描。所扫描的字符包括数字、单引号、双引号、关键字符和空格,若扫描到数字字符,则在步骤305中一直取到数字序列结束,然后返回步骤304取下一个字符;若扫描到单引号或双引号字符,则在步骤306需一直取字符直到遇到下一个单引号或双引号(即引号结束标志);若取到关键字符或空格,则返回步骤304扫描下一个字符。在扫描过程中,若取到的字符不是数字、单引号、双引号、关键字符或空格中的任意一者,则说明扫描到SQL注入,进入步骤307,返回“检查失败”。若所有字符均扫描完成也未发现不符合规范的字符,即当前已到转码序列的末尾,无下一个字符可取时,则进入步骤308,返回“检查成功”,即未发现SQL注入。
接着,在SQL注入检查及子句检查完成之后,会对并非注入的SQL语句进行拼接,拼接出的规范的SQL语句发送至相应的数据库进行查询。根据本发明的拼接方法根据提供的数据库操作接口,定义SQL的拼接流程。具体的拼接流程如图4所示。首先输入参数。输入的参数包括数据库操作类型,即所允许的四种数据库操作类型,即选择(“SELECT”)、删除(“DELETE”)、更新(“UPDATE”)和插入(“INSERT”),数据库名(dbname)和表名(tablename)。然后在数据库名和表名都不为空的条件下进行拼接。首先拼接from字句变量,即fromStr=“from”+数据库名+“.”+表名。然后初始化SQL字符串。
接着判断数据库的操作类型,针对选择、删除、更新和插入这几种不同的类型分别进行处理。具体的拼接过程如图4所示。拼接之后得到的规范SQL语句sqlStr如下:
选择操作:
sqlStr=“Select”+“”+<selectcolumn子句值>+“”+fromStr+“”+<WHERE子句值>+“”+orderbystr;
更新操作:
sqlStr=“Update”+“”+DBName+“.”+TableName+“”+<updateset子句值>+“”+<WHERE子句值>;
插入操作:
sqlStr=“Insert”+“”+<Insertcolumn子句值>+“”+DBName+“.”+TableName+“”+<insertvalue子句值>;
删除操作:
sqlStr=“Delete”+“”+fromStr+<where子句值>;
在拼接成功后,返回sqlStr,然后发送至相应的数据库进行查询。查询之后的结果返回给应用系统,完成该SQL语句的请求。若拼接过程中发生失败,则返回空串。
根据本发明的上述SQL注入防御的方法和系统,在SQL语句访问数据库之前,设置了提供数据库查询的数据库代理服务器,由此通过运维手段切断除了数据库代理服务器以外的任何应用系统对数据库的访问权限,使得所有的应用系统的数据库查询都只通过该数据库代理服务器。通过对SQL语句的注入检测,防止了恶意的SQL注入,再通过语句的拼接使得对数据库的操作更为安全且简化,从而提高数据库访问的安全性,防止SQL注入。
结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。
Claims (6)
1.一种针对数据库的SQL注入防御的方法,所述方法包括如下步骤:
(a)数据库代理服务器接收来自应用系统发出的访问数据库的SQL语句;
(b)对SQL语句进行注入判断和检查,若发现SQL注入,则对该SQL注入进行拦截,记录错误,并向所述应用系统返回异常消息;若发现并非为SQL注入,则查询出该SQL语句所需要访问的相应数据库操作的接口规范,拼接出符合该数据库操作接口规范的SQL语句;
其中所述对SQL语句进行注入判断和检查基于如下规范:(1)当前数据库操作接口允许操作的数据库、表;(2)当前数据库操作接口的子句中的语法规则;以及(3)当前数据库操作接口的子句中的语义规则;
其中所述子句中的语法规则具体如下:
1)SQL语句必须能够解析成集合元素拼接成的串,2)限定的字段名限定哪些字段可以被当前方法查询,本发明的数据库代理服务器可以通过此配置定义字段级别的访问权限,3)限定的SQL关键词限定子句中允许的关键词,以避免误删除或者恶意删除;
SQL注入检查及子句检查的算法如下:
步骤1):将所输入的SQL子句,以及数据库、表名、操作接口全部转化为小写,
步骤2):根据数据库、表名、操作接口、子句,获得定义的语法转码表,
步骤3):根据语法转码表,对输入的SQL子句按语法转码表的每一项执行替换操作,得到转码后的序列,
步骤4):对得到转换码后的字符进行逐字符的扫描,若扫描到数字字符,则进入
步骤5)一直取到数字序列结束,然后返回步骤4)取下一个字符;若扫描到单引号或双引号字符,则进入
步骤6)一直取字符直到遇到下一个单引号或双引号;若取到关键字符或空格,则返回步骤4)扫描下一个字符,若取到的字符不是数字、单引号、双引号、关键字符或空格中的任意一者,则说明扫描到SQL注入,进入
步骤7)返回“检查失败”,若所有字符均扫描完成也未发现不符合规范的字符,即当前已到转码序列的末尾,无下一个字符可取时,则进入
步骤8)返回“检查成功”,即未发现SQL注入;
(c)将步骤(b)拼接出的规范的SQL语句发送到相应的数据库进行数据库操作;和
(d)将查询后的结果返回给应用系统。
2.如权利要求1所述的方法,其中所述应用系统是客户端/服务器或浏览器/服务器模式。
3.如权利要求1所述的方法,其中为所述应用系统提供的数据库操作类型包括选择、插入、更新和删除。
4.如权利要求1所述的方法,其中所述数据库操作的接口规范包括数据库操作接口所接受的数据库、表、合法语法格式。
5.如权利要求1所述的方法,其中所述步骤(b)中的语法规则是将SQL子句转化成转码字符的序列从而构造语法转码表。
6.如权利要求1所述的方法,其中所述步骤(b)的拼接是针对选择、插入、更新和删除四种数据库操作分别进行的拼接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310296901.5A CN103338208B (zh) | 2013-07-16 | 2013-07-16 | 一种sql注入防御的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310296901.5A CN103338208B (zh) | 2013-07-16 | 2013-07-16 | 一种sql注入防御的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103338208A CN103338208A (zh) | 2013-10-02 |
CN103338208B true CN103338208B (zh) | 2017-05-24 |
Family
ID=49246305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310296901.5A Active CN103338208B (zh) | 2013-07-16 | 2013-07-16 | 一种sql注入防御的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103338208B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657675A (zh) * | 2015-02-12 | 2015-05-27 | 中復保有限公司 | 核心数据安全传输及存储方法 |
CN106503557B (zh) * | 2016-07-08 | 2019-10-08 | 北京卫达信息技术有限公司 | 基于动态变换的sql注入攻击防御系统及防御方法 |
CN107784003B (zh) * | 2016-08-26 | 2021-09-21 | 菜鸟智能物流控股有限公司 | 数据查询异常检测方法、装置、设备及系统 |
CN106845237A (zh) * | 2017-01-23 | 2017-06-13 | 北京安华金和科技有限公司 | 一种基于sql语句的sql注入风险评估方法 |
CN108572968B (zh) * | 2017-03-09 | 2022-10-25 | 腾讯科技(深圳)有限公司 | 一种数据查询方法、装置、服务器以及系统 |
CN107358098A (zh) * | 2017-07-14 | 2017-11-17 | 北京安数云信息技术有限公司 | 基于插件的结构化查询语言sql注入检测方法和装置 |
CN107277057A (zh) * | 2017-08-03 | 2017-10-20 | 四川长虹电器股份有限公司 | 一种.net服务器上防止SQL注入的方法 |
CN107832618B (zh) * | 2017-09-20 | 2019-12-24 | 武汉虹旭信息技术有限责任公司 | 一种基于细粒度权限控制的sql注入检测系统及其方法 |
CN107483510B (zh) * | 2017-10-09 | 2020-11-24 | 杭州安恒信息技术股份有限公司 | 一种提高Web应用层攻击检测准确率的方法及装置 |
CN110035031B (zh) * | 2018-01-11 | 2022-04-26 | 阿里巴巴集团控股有限公司 | 一种sql注入的检测方法及数据处理方法 |
CN108629035B (zh) * | 2018-05-10 | 2022-05-27 | 福建星瑞格软件有限公司 | 一种基于jdbc代理的异构数据库应用迁移方法 |
CN108667840B (zh) * | 2018-05-11 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 注入漏洞检测方法及装置 |
CN108959926A (zh) * | 2018-06-27 | 2018-12-07 | 杭州安恒信息技术股份有限公司 | 一种sql注入攻击的检测方法 |
CN109271404A (zh) * | 2018-10-25 | 2019-01-25 | 北京华宇信息技术有限公司 | 数据库防误删方法、装置、电子设备和计算机可读介质 |
CN109582691B (zh) * | 2018-11-15 | 2023-04-07 | 百度在线网络技术(北京)有限公司 | 用于控制数据查询的方法和装置 |
CN112783979A (zh) * | 2021-01-28 | 2021-05-11 | 北京读我网络技术有限公司 | 分布式数据库访问方法、装置及分布式数据库管理系统 |
CN113127505B (zh) * | 2021-05-17 | 2024-04-23 | 北京奇艺世纪科技有限公司 | 结构化查询语言sql系统的监控方法、装置及电子设备 |
CN113660239A (zh) * | 2021-08-10 | 2021-11-16 | 中电积至(海南)信息技术有限公司 | 一种基于加盐与前端waf防护耦合的防sql注入系统 |
CN113971184A (zh) * | 2021-10-19 | 2022-01-25 | 上海上讯信息技术股份有限公司 | 一种基于数据库代理服务器管理运维操作的方法与设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158975A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种访问不同类型数据库的方法和系统 |
CN101515931A (zh) * | 2009-03-24 | 2009-08-26 | 北京理工大学 | 一种基于代理方式的数据库安全增强方法 |
CN101610271A (zh) * | 2009-07-21 | 2009-12-23 | 国网电力科学研究院 | 一种基于数据流还原技术的数据库安全防护方法 |
CN102185930A (zh) * | 2011-06-09 | 2011-09-14 | 北京理工大学 | 一种sql注入漏洞检测方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425117B (zh) * | 2008-12-09 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 一种构造sql语句的方法及装置 |
US20130007882A1 (en) * | 2011-06-28 | 2013-01-03 | The Go Daddy Group, Inc. | Methods of detecting and removing bidirectional network traffic malware |
-
2013
- 2013-07-16 CN CN201310296901.5A patent/CN103338208B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158975A (zh) * | 2007-11-21 | 2008-04-09 | 金蝶软件(中国)有限公司 | 一种访问不同类型数据库的方法和系统 |
CN101515931A (zh) * | 2009-03-24 | 2009-08-26 | 北京理工大学 | 一种基于代理方式的数据库安全增强方法 |
CN101610271A (zh) * | 2009-07-21 | 2009-12-23 | 国网电力科学研究院 | 一种基于数据流还原技术的数据库安全防护方法 |
CN102185930A (zh) * | 2011-06-09 | 2011-09-14 | 北京理工大学 | 一种sql注入漏洞检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103338208A (zh) | 2013-10-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103338208B (zh) | 一种sql注入防御的方法和系统 | |
US9418237B2 (en) | System and method for data masking | |
CN103744802B (zh) | Sql注入攻击的识别方法及装置 | |
US8135705B2 (en) | Guaranteeing hypertext link integrity | |
US9197597B2 (en) | RDF object type and reification in the database | |
US20060212438A1 (en) | SQL injection protection by variable normalization | |
CN112434059B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20090094270A1 (en) | Method of building a validation database | |
KR100724122B1 (ko) | 데이터의 연관성 구조를 저장하는 번들데이터베이스관리시스템 및 그 관리방법 | |
US6912539B1 (en) | Method and apparatus for verifying converted database commands | |
CN101601033A (zh) | 响应于模式化查询而生成专业的搜索结果 | |
US20220138172A1 (en) | Method and system for distributed data storage with eternal integrity guarantees | |
WO2016115390A1 (en) | Record level data security | |
CN101110812A (zh) | 文本命令解析处理方法 | |
CN102893576A (zh) | 用于减缓跨站弱点的方法和装置 | |
KR101963153B1 (ko) | 개인정보 보안 강화를 위해 파서를 이용한 금칙어 기반 db 접근통제 시스템 | |
CN104954346A (zh) | 基于对象分析的攻击识别方法及装置 | |
CN107832618A (zh) | 一种基于细粒度权限控制的sql注入检测系统及其方法 | |
CN101877700A (zh) | 在应用与数据库之间传递机密信息 | |
CN104954345A (zh) | 基于对象分析的攻击识别方法及装置 | |
CN108388606A (zh) | 一种校验Sql语句中库表字段名的方法以及计算机设备 | |
US20150347506A1 (en) | Methods and apparatus for specifying query execution plans in database management systems | |
CN116610697A (zh) | 数据库查询语句的查询方法、存储介质及设备 | |
Wu et al. | Test SQL injection vulnerabilities in web applications based on structure matching | |
CN106685972B (zh) | 一种增强容错网络视频信息处理系统及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |