[發(fā)明專利]SQL注入缺陷檢測方法、系統(tǒng)、設(shè)備及存儲介質(zhì)有效
| 申請?zhí)枺?/td> | 201811015751.5 | 申請日: | 2018-08-31 |
| 公開(公告)號: | CN109426722B | 公開(公告)日: | 2021-06-29 |
| 發(fā)明(設(shè)計)人: | 肖梟;時清凱;周金果;范剛 | 申請(專利權(quán))人: | 深圳市源傘新科技有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F21/57 |
| 代理公司: | 北京博思佳知識產(chǎn)權(quán)代理有限公司 11415 | 代理人: | 林祥 |
| 地址: | 518055 廣東省深圳市南山區(qū)西麗街道*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | sql 注入 缺陷 檢測 方法 系統(tǒng) 設(shè)備 存儲 介質(zhì) | ||
本發(fā)明提供了一種SQL注入缺陷檢測方法、系統(tǒng)、設(shè)備及存儲介質(zhì),所述方法包括:輸入待檢測的程序;生成待檢測的程序中各個函數(shù)的符號表達(dá)式圖,符號表達(dá)式圖包括節(jié)點(diǎn)和連接節(jié)點(diǎn)的邊,節(jié)點(diǎn)包括值節(jié)點(diǎn)和運(yùn)算符節(jié)點(diǎn),邊包括數(shù)據(jù)依賴性邊和控制依賴性邊,其中,數(shù)據(jù)依賴性邊是將節(jié)點(diǎn)連接到與其有直接數(shù)據(jù)依賴關(guān)系的值節(jié)點(diǎn)的有方向性的邊,控制依賴性邊是當(dāng)存在限定變量的條件時將變量連接到條件的有方向性的邊;以及檢測各個函數(shù)的符號表達(dá)式圖中是否存在從用戶輸入節(jié)點(diǎn)到查詢語句節(jié)點(diǎn)之間的路徑且路徑約束條件均滿足,如果是,則發(fā)現(xiàn)SQL注入缺陷。本發(fā)明通過符號表達(dá)式圖中路徑和路徑約束條件的判斷,能夠高效地檢測SQL注入缺陷。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種SQL注入缺陷檢測方法、系統(tǒng)、設(shè)備及存儲介質(zhì)。
背景技術(shù)
SQL(Structured Query Language,結(jié)構(gòu)化查詢語言)注入(SQL Injection)是一種代碼注入技術(shù),用于攻擊數(shù)據(jù)驅(qū)動的應(yīng)用程序,其中惡意的SQL語句被插入到輸入字段中從而被惡意執(zhí)行。
SQL注入缺陷在SQL查詢的元素源自不可信源的應(yīng)用程序中出現(xiàn)。如果沒有預(yù)防措施,不可信數(shù)據(jù)可能會惡意更改查詢,導(dǎo)致信息泄漏或數(shù)據(jù)修改。
SQL注入缺陷最早在2000年左右被提出,其后學(xué)者們對SQL注入的檢測和防護(hù)展開了一系列的研究。
典型的一種SQL注入例子如下:
(1)用戶登錄Web應(yīng)用系統(tǒng)時,需要進(jìn)行身份認(rèn)證,主要輸入用戶名和密碼兩個變量v_usr和v_pwd;
(2)Web系統(tǒng)執(zhí)行合法性檢查的SQL語句為:
“Select*from users where username=‘”+v_usr+“’and password=‘”+v_pwd+“’”,如果用戶登錄時用戶取為‘a(chǎn)dmin’or 1=1--,那么合法性檢查的SQL語句等效于Select*from users where username=‘a(chǎn)dmin’or 1=1;
顯然,用戶名取‘a(chǎn)dmin’or 1=1--時,無論密碼輸入多少,都可以登錄系統(tǒng)。
SQL注入缺陷的檢測和防護(hù)方式目前主要有兩大類,一是系統(tǒng)上線前檢測,也稱為靜態(tài)檢測;二是系統(tǒng)在線運(yùn)行防御,也稱為動態(tài)檢測。
動態(tài)檢測方式是一種黑盒檢測方法,對上線的系統(tǒng)進(jìn)行SQL注入缺陷掃描,編制SQL注入攻擊腳本對Web系統(tǒng)進(jìn)行試探,通過檢查Http的回應(yīng)報文內(nèi)容來判斷是否發(fā)生SQL注入攻擊,從而確定是否存在SQL注入漏洞。AppScan等工具可執(zhí)行此類安全檢測。一篇參考文獻(xiàn):
GOULD C,SU Z,DEVANBU P.JDBC checker:a static analysis tool for SQL/JDBC applications[C].Proceeding of the 26th International conference onSoftware Engineering(ICSE).Washington D C:IEEE computer Society,2004以及另一篇參考文獻(xiàn):
GOULD C,SU Z,DEVANBU P.Static checking of dynamically generatedqueries in database applications[C].Proceedings of 26th InternationalConference on Software Engineering,2004給出了一種動態(tài)生成SQL語句進(jìn)行類型正確性檢查的方法來檢測是否存在SQL注入,該方法的的缺點(diǎn)在于只能檢測句法結(jié)構(gòu)或語句類型出現(xiàn)異常的SQL注入問題。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳市源傘新科技有限公司,未經(jīng)深圳市源傘新科技有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811015751.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F21-00 防止未授權(quán)行為的保護(hù)計算機(jī)或計算機(jī)系統(tǒng)的安全裝置
G06F21-02 .通過保護(hù)計算機(jī)的特定內(nèi)部部件
G06F21-04 .通過保護(hù)特定的外圍設(shè)備,如鍵盤或顯示器
G06F21-06 .通過感知越權(quán)操作或外圍侵?jǐn)_
G06F21-20 .通過限制訪問計算機(jī)系統(tǒng)或計算機(jī)網(wǎng)絡(luò)中的節(jié)點(diǎn)
G06F21-22 .通過限制訪問或處理程序或過程





