CN101526947A - 应用正则表达式防sql注入技术 - Google Patents

应用正则表达式防sql注入技术 Download PDF

Info

Publication number
CN101526947A
CN101526947A CN200910020369A CN200910020369A CN101526947A CN 101526947 A CN101526947 A CN 101526947A CN 200910020369 A CN200910020369 A CN 200910020369A CN 200910020369 A CN200910020369 A CN 200910020369A CN 101526947 A CN101526947 A CN 101526947A
Authority
CN
China
Prior art keywords
rule
regular expression
sql
request
injection technology
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
Application number
CN200910020369A
Other languages
English (en)
Inventor
刘江宁
黄三伟
刘宗福
刘春�
王进
石磊
刘毅枫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CVIC Software Engineering Co Ltd
Original Assignee
CVIC Software Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CVIC Software Engineering Co Ltd filed Critical CVIC Software Engineering Co Ltd
Priority to CN200910020369A priority Critical patent/CN101526947A/zh
Publication of CN101526947A publication Critical patent/CN101526947A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种应用正则表达式防SQL注入技术,即一种InforGuard对操作网站数据库的SQL语句进行规则验证的机制。首先进行进程初始化,然后进行验证,验证过程采用正则表达式的机制,解决了当前验证机制功能简单和扩展性差的缺点,其扩展性好、具有稳定、高效的验证算法、兼容性强。

Description

应用正则表达式防SQL注入技术
技术领域
本发明涉及一种应用正则表达式防SQL注入技术,即一种InforGuard对操作网站数据库的SQL语句进行规则验证的机制。
背景技术
在基于WEB服务器或应用服务器(以下简称为服务器)的网络应用中,需要对部署在服务器上的数据库中进行保护,为了实现这一目的,需要对操作数据库的语句进行验证,以确保操作语句的合法性。
目前,在此领域采用的方案为:关键字查找。
该方法是通过在请求语句中查找是否有定义的非法关键字,通俗的讲就是判断一个字符中是否包含另一个字符串。这种字符串查找的方式对于那些复杂的应用场景是无能为力的,并且其扩展性也有很大的限制;而现在的应用场景又越来越复杂,攻击数据库的规则也越来越多;所以关键字查找这种方式也该功成身退,应该用一种更为强大的机制代替它。
发明内容
本发明的目的就是针对上述的不足,提供了一种能够应用于复杂环境、扩展性好的InforGuard对操作网站数据库的SQL语句进行规则验证的机制。
一种应用正则表达式防SQL注入技术,首先进行进程初始化,然后进行验证,验证过程为:
第一步:获取请求信息,利用过滤器机制,获取请求的信息或应用服务器的响应信息。
第二步:分解请求信息,对获取到的信息,进行分析,取出所有要验证的信息。
第三步:调用排除规则对象验证,利用程序初始化时生成的对象,对要验证的信息进行规则匹配,对于和规则相匹配的请求认为是合法的请求,交于应用服务器继续处理。
第四步:调用包含规则对象验证,利用程序初始化时生成的对象,对要验证的信息进行规则匹配,对于和规则相匹配的请求认为是非法的请求,终止应用服务器继续处理。
上述规则匹配的匹配机制就是正则表达式,正则表达式是一种普通的现有技术。
上述进程初始化是一个通用流程,为:
第一步:读取配置,为了系统的灵活性,将一些参数通过配置来进行手动配置的方式来指定。因为配置信息影响着系统的运行流程,所以是进程启动后首先要执行的动作。
第二步:读取规则库,为了程序的易扩展性与易维护性,将规则信息写入配置文件中,此步操作的目的就是将规则库中的内容读取到内存中去。
第三步:初始化规则对象,为了提高验证效率,程序在初始化时就进行各种规则对象的初始化,从而避免了每次验证时都要初化对象,大大提高了证验的缺陷。
第四步:销毁规则对象,由于规则对象是在堆上分配的,所以在程序退出之前要释放内存。
本发明是正则表达式在SQL中的应用,主要采用了以下技术手段:
1.针对各种攻击手段提取了较为全面的规则库
较为全面规则库,在安装包中以sqlrules.xml文件的方式存在,并且现在以明文的方式展示,使用记事本就可以查看其内容,其中验证规则以正则表达式的方式描述,在程序使用的排除与包含规则就是规则库中定义的规则。故针对黑客的SQL语句注入、脚本注入、命令注入等方式进行分析,进而行成了比较全面的规则库,可以阻断80%的注入攻击,从而为数据库提供一道安全屏障。
2.规则库采用XML方式描述
也是存在于sqlrules.xml档中,其中文档的格式是以xml格式定义的,其中解析此格式的库为TinyXml(此库也为开源库,XML解析器),用户也可以自己添加一些自己定义的规则,在程序中解决规则到对象时采用的就是XML解决器。规则库采用XML的方式描述,从而提高了规则的可扩展性,也有利于规则的升级与功能的扩展。
3.高效的匹配算法
高效的匹配算法,在系统中以PcreRex动态库出现,其中PcreRex是以Pcre为基础,改造而来,继承了Pcre高效的算法。在程中的匹配调用就是使用的些算法。正则表达式符合Pcre标准,Pcre是开源的项目,Pcre兼容性和通用性很好,并在在Apache服务器上就有应用。
这样,就具有了如下优点:
1.规则扩展性好
有很大一部分功能,就可以利用正则表达式的特点进行扩展,从而避免了修改代码带来的风险;方便规则库的升级,随着时间推移,规则库会越来越完整,越来越精确。
2.稳定、高效率的验证算法
规则库在程序初始化时被初始化到内存中,并生成多个匹配对象,所以在以后的配置中,是直接调用配置对象和验证的字符串进行匹配;另外配置过程中采用非递归的方式,从而减少函数的调用次数进而提高匹配效率、避免了深层递归带来的栈溢出。
3.兼容性强
由于正则表达式,有其统一的规范,所以适用于各种操系统和各种应用服务器。
附图说明
图1为本发明实施例中进程初始化流程图;
图2是本发明实施例中验证流程图。
具体实施方式
下面将对本发明的实施方式进行详细说明。
一种应用正则表达式防SQL注入技术,首先进行进程初始化,然后进行验证。
初始化流程如图1所示,流程开始于步骤101,进程启动。
然后进入步骤102,读取配置,为了系统的灵活性,将一些参数通过配置来进行手动配置的方式来指定。因为配置信息影响着系统的运行流程,所以是进程启动后首先要执行的动作。
然后再进入步骤103,读取规则库,为了程序的易扩展性与易维护性,将规则信息写入配置文件中,此步操作的目的就是将规则库中的内容读取到内存中去。
然后进入步骤104,初始化规则对象,为了提高验证效率,程序在初始化时就进行各种规则对象的初始化,从而避免了每次验证时都要初化对象,大大提高了证验的缺陷。
然后查看是否退出,如果不退出,则进入步骤1051,CPU空闲;如果退出,则进入步骤1052,销毁规则对象,由于规则对象是在堆上分配的,所以在程序退出之前要释放内存。
销毁规则对象后进入步骤106,进程退出。
验证流程如图2所示,开始于步骤201,获取请求信息,利用过滤器机制,获取请求的信息或应用服务器的响应信息。
然后进入步骤202,分解请求信息,对获取到的信息,进行分析,取出所有要验证的信息。
然后进入步骤203和204,调用排除规则对象验证,利用程序初始化时生成的对象,对要验证的信息进行规则匹配,对于和规则相匹配的请求认为是合法的请求,交于应用服务器继续处理。查看是否排除,如果是,则进入步骤2091,正常响应请求;如果为否,则进入步骤205,查看排除是否全部验证,如果结果为否,则回到步骤203。
如果上述结果为是,则进入步骤206和207,调用包含规则对象验证,利用程序初始化时生成的对象,对要验证的信息进行规则匹配,对于和规则相匹配的请求认为是非法的请求,终止应用服务器继续处理。查看是否包含,如果包含,则进入步骤2092,终止响应请求。
如果上述结果为否,则进入步骤208,查看包含是否全部验证,如果已经全部验证,则进入步骤2081,正常响应请求;如果结果为否,则回到步骤206,继续调用包含规则对象验证。

Claims (2)

1.一种应用正则表达式防SQL注入技术,首先进行进程初始化,然后进行验证,验证过程为:第一步:获取请求信息,第二步:分解请求信息,其特征在于:验证过程还包括:
第三步:调用排除规则对象验证,利用程序初始化时生成的对象,对要验证的信息进行规则匹配,对于和规则相匹配的请求认为是合法的请求,交于应用服务器继续处理;
第四步:调用包含规则对象验证,利用程序初始化时生成的对象,对要验证的信息进行规则匹配,对于和规则相匹配的请求认为是非法的请求,终止应用服务器继续处理。
2.根据权利要求1所述的应用正则表达式防SQL注入技术,其特征在于:上述规则匹配的机制是正则表达式。
CN200910020369A 2009-04-23 2009-04-23 应用正则表达式防sql注入技术 Pending CN101526947A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910020369A CN101526947A (zh) 2009-04-23 2009-04-23 应用正则表达式防sql注入技术

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200910020369A CN101526947A (zh) 2009-04-23 2009-04-23 应用正则表达式防sql注入技术

Publications (1)

Publication Number Publication Date
CN101526947A true CN101526947A (zh) 2009-09-09

Family

ID=41094813

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910020369A Pending CN101526947A (zh) 2009-04-23 2009-04-23 应用正则表达式防sql注入技术

Country Status (1)

Country Link
CN (1) CN101526947A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073640B (zh) * 2009-11-19 2013-12-18 阿里巴巴集团控股有限公司 Sql语句的检测方法、系统及服务器
CN103944904A (zh) * 2014-04-23 2014-07-23 广东电网公司信息中心 Apache服务器安全监控方法
CN104199673A (zh) * 2014-09-22 2014-12-10 联想(北京)有限公司 一种信息处理方法及装置
CN108521392A (zh) * 2018-01-25 2018-09-11 华东师范大学 一种双向流量的sql注入攻击检测方法
CN108763887A (zh) * 2018-05-23 2018-11-06 腾讯科技(深圳)有限公司 数据库操作请求验证方法、装置、服务器及存储介质
CN110086827A (zh) * 2019-05-14 2019-08-02 重庆商勤科技有限公司 一种sql注入校验方法、服务器以及系统
CN110535973A (zh) * 2019-09-18 2019-12-03 北京明朝万达科技股份有限公司 一种sql注入威胁的检测方法及装置
CN112214372A (zh) * 2020-09-16 2021-01-12 广州海颐信息安全技术有限公司 一种敏感sql集中控制系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073640B (zh) * 2009-11-19 2013-12-18 阿里巴巴集团控股有限公司 Sql语句的检测方法、系统及服务器
CN103944904A (zh) * 2014-04-23 2014-07-23 广东电网公司信息中心 Apache服务器安全监控方法
CN104199673A (zh) * 2014-09-22 2014-12-10 联想(北京)有限公司 一种信息处理方法及装置
CN104199673B (zh) * 2014-09-22 2018-01-26 联想(北京)有限公司 一种信息处理方法及装置
CN108521392A (zh) * 2018-01-25 2018-09-11 华东师范大学 一种双向流量的sql注入攻击检测方法
CN108763887A (zh) * 2018-05-23 2018-11-06 腾讯科技(深圳)有限公司 数据库操作请求验证方法、装置、服务器及存储介质
CN110086827A (zh) * 2019-05-14 2019-08-02 重庆商勤科技有限公司 一种sql注入校验方法、服务器以及系统
CN110535973A (zh) * 2019-09-18 2019-12-03 北京明朝万达科技股份有限公司 一种sql注入威胁的检测方法及装置
CN112214372A (zh) * 2020-09-16 2021-01-12 广州海颐信息安全技术有限公司 一种敏感sql集中控制系统

Similar Documents

Publication Publication Date Title
CN101526947A (zh) 应用正则表达式防sql注入技术
Xu et al. A novel machine learning‐based analysis model for smart contract vulnerability
US20150143494A1 (en) Continuous identity authentication method for computer users
CN104537302B (zh) 一种终端的安全启动方法、装置及终端
Zhuo et al. Long short‐term memory on abstract syntax tree for SQL injection detection
CN109857389A (zh) 模型数据生成方法、装置、计算机设备及存储介质
EP3647979B1 (en) Device attestation techniques
Liu et al. Fast reliability evaluation method for composite power system based on the improved EDA and double cross linked list
Zhao et al. Stabilization of jump linear systems with mode‐dependent time‐varying delays
CN106020923B (zh) SELinux策略的编译方法及系统
CN111415683A (zh) 语音识别异常告警方法、装置、计算机设备和存储介质
CN105745625B (zh) 使用散列来验证程序的完整性的方法
Chen et al. From adversarial arms race to model-centric evaluation: Motivating a unified automatic robustness evaluation framework
CN105653339B (zh) 应用进程启动方法及应用进程启动装置
Xie et al. Towards a Statistical Model Checking Method for Safety‐Critical Cyber‐Physical System Verification
Jing et al. Mutation testing of protocol messages based on extended TTCN-3
CN111488287B (zh) 注入漏洞测试用例的生成方法、装置、介质及电子设备
CN116070191A (zh) 信息处理方法及其装置、存储介质、程序产品
CN117009319B (zh) 基于大语言模型的数据库操作方法、系统及存储介质
CN105677400B (zh) 应用进程启动方法及应用进程启动装置
Phalak et al. An Iot based smart locker using BLE technology
CN109218320A (zh) 网站链路安全性验证方法、装置、计算机设备及存储介质
CN104182248B (zh) 业务规则库升级方法及装置
Setiyani et al. Comparison of the Performance of the SQL Injection Detection Model Using CNN, Logistic Regression, Random Forest, Naive Bayes, and Decision Tree
Yang et al. Real‐Time Extended Interface Automata for Software Testing Cases Generation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090909