[發(fā)明專利]應用正則表達式防SQL注入技術無效
| 申請?zhí)枺?/td> | 200910020369.8 | 申請日: | 2009-04-23 |
| 公開(公告)號: | CN101526947A | 公開(公告)日: | 2009-09-09 |
| 發(fā)明(設計)人: | 劉江寧;黃三偉;劉宗福;劉春;王進;石磊;劉毅楓 | 申請(專利權(quán))人: | 山東中創(chuàng)軟件商用中間件股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 濟南舜源專利事務所有限公司 | 代理人: | 苗 峻 |
| 地址: | 250014山東*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 應用 正則 表達式 sql 注入 技術 | ||
技術領域
本發(fā)明涉及一種應用正則表達式防SQL注入技術,即一種InforGuard對操作網(wǎng)站數(shù)據(jù)庫的SQL語句進行規(guī)則驗證的機制。
背景技術
在基于WEB服務器或應用服務器(以下簡稱為服務器)的網(wǎng)絡應用中,需要對部署在服務器上的數(shù)據(jù)庫中進行保護,為了實現(xiàn)這一目的,需要對操作數(shù)據(jù)庫的語句進行驗證,以確保操作語句的合法性。
目前,在此領域采用的方案為:關鍵字查找。
該方法是通過在請求語句中查找是否有定義的非法關鍵字,通俗的講就是判斷一個字符中是否包含另一個字符串。這種字符串查找的方式對于那些復雜的應用場景是無能為力的,并且其擴展性也有很大的限制;而現(xiàn)在的應用場景又越來越復雜,攻擊數(shù)據(jù)庫的規(guī)則也越來越多;所以關鍵字查找這種方式也該功成身退,應該用一種更為強大的機制代替它。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對上述的不足,提供了一種能夠應用于復雜環(huán)境、擴展性好的InforGuard對操作網(wǎng)站數(shù)據(jù)庫的SQL語句進行規(guī)則驗證的機制。
一種應用正則表達式防SQL注入技術,首先進行進程初始化,然后進行驗證,驗證過程為:
第一步:獲取請求信息,利用過濾器機制,獲取請求的信息或應用服務器的響應信息。
第二步:分解請求信息,對獲取到的信息,進行分析,取出所有要驗證的信息。
第三步:調(diào)用排除規(guī)則對象驗證,利用程序初始化時生成的對象,對要驗證的信息進行規(guī)則匹配,對于和規(guī)則相匹配的請求認為是合法的請求,交于應用服務器繼續(xù)處理。
第四步:調(diào)用包含規(guī)則對象驗證,利用程序初始化時生成的對象,對要驗證的信息進行規(guī)則匹配,對于和規(guī)則相匹配的請求認為是非法的請求,終止應用服務器繼續(xù)處理。
上述規(guī)則匹配的匹配機制就是正則表達式,正則表達式是一種普通的現(xiàn)有技術。
上述進程初始化是一個通用流程,為:
第一步:讀取配置,為了系統(tǒng)的靈活性,將一些參數(shù)通過配置來進行手動配置的方式來指定。因為配置信息影響著系統(tǒng)的運行流程,所以是進程啟動后首先要執(zhí)行的動作。
第二步:讀取規(guī)則庫,為了程序的易擴展性與易維護性,將規(guī)則信息寫入配置文件中,此步操作的目的就是將規(guī)則庫中的內(nèi)容讀取到內(nèi)存中去。
第三步:初始化規(guī)則對象,為了提高驗證效率,程序在初始化時就進行各種規(guī)則對象的初始化,從而避免了每次驗證時都要初化對象,大大提高了證驗的缺陷。
第四步:銷毀規(guī)則對象,由于規(guī)則對象是在堆上分配的,所以在程序退出之前要釋放內(nèi)存。
本發(fā)明是正則表達式在SQL中的應用,主要采用了以下技術手段:
1.針對各種攻擊手段提取了較為全面的規(guī)則庫
較為全面規(guī)則庫,在安裝包中以sqlrules.xml文件的方式存在,并且現(xiàn)在以明文的方式展示,使用記事本就可以查看其內(nèi)容,其中驗證規(guī)則以正則表達式的方式描述,在程序使用的排除與包含規(guī)則就是規(guī)則庫中定義的規(guī)則。故針對黑客的SQL語句注入、腳本注入、命令注入等方式進行分析,進而行成了比較全面的規(guī)則庫,可以阻斷80%的注入攻擊,從而為數(shù)據(jù)庫提供一道安全屏障。
2.規(guī)則庫采用XML方式描述
也是存在于sqlrules.xml檔中,其中文檔的格式是以xml格式定義的,其中解析此格式的庫為TinyXml(此庫也為開源庫,XML解析器),用戶也可以自己添加一些自己定義的規(guī)則,在程序中解決規(guī)則到對象時采用的就是XML解決器。規(guī)則庫采用XML的方式描述,從而提高了規(guī)則的可擴展性,也有利于規(guī)則的升級與功能的擴展。
3.高效的匹配算法
高效的匹配算法,在系統(tǒng)中以PcreRex動態(tài)庫出現(xiàn),其中PcreRex是以Pcre為基礎,改造而來,繼承了Pcre高效的算法。在程中的匹配調(diào)用就是使用的些算法。正則表達式符合Pcre標準,Pcre是開源的項目,Pcre兼容性和通用性很好,并在在Apache服務器上就有應用。
這樣,就具有了如下優(yōu)點:
1.規(guī)則擴展性好
有很大一部分功能,就可以利用正則表達式的特點進行擴展,從而避免了修改代碼帶來的風險;方便規(guī)則庫的升級,隨著時間推移,規(guī)則庫會越來越完整,越來越精確。
2.穩(wěn)定、高效率的驗證算法
規(guī)則庫在程序初始化時被初始化到內(nèi)存中,并生成多個匹配對象,所以在以后的配置中,是直接調(diào)用配置對象和驗證的字符串進行匹配;另外配置過程中采用非遞歸的方式,從而減少函數(shù)的調(diào)用次數(shù)進而提高匹配效率、避免了深層遞歸帶來的棧溢出。
3.兼容性強
該專利技術資料僅供研究查看技術是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于山東中創(chuàng)軟件商用中間件股份有限公司,未經(jīng)山東中創(chuàng)軟件商用中間件股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200910020369.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





