亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SQL語法樹的SQL注入過濾方法研究

        2016-12-12 09:37:50韓宸望林暉黃川
        關(guān)鍵詞:關(guān)鍵字攻擊者語句

        韓宸望,林暉,黃川

        (1. 福建師范大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福建 福州 350117;2. 福建師范大學(xué)福建省網(wǎng)絡(luò)安全與密碼技術(shù)重點(diǎn)實(shí)驗(yàn)室,福建 福州 350117)

        基于SQL語法樹的SQL注入過濾方法研究

        韓宸望1,2,林暉1,2,黃川1,2

        (1. 福建師范大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,福建 福州 350117;2. 福建師范大學(xué)福建省網(wǎng)絡(luò)安全與密碼技術(shù)重點(diǎn)實(shí)驗(yàn)室,福建 福州 350117)

        Web應(yīng)用的發(fā)展,使其涉及的領(lǐng)域也越來越廣。隨之而來的安全問題也越來越嚴(yán)重,尤其是 SQL注入攻擊,給Web應(yīng)用安全帶來了巨大的挑戰(zhàn)。針對SQL注入攻擊,將基于SQL語法樹比較的安全策略引入用戶輸入過濾的設(shè)計(jì)中,提出了一種新的SQL注入過濾方法。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效地防止SQL注入攻擊,并有較高的攔截率和較低的誤報(bào)率。

        SQL注入攻擊;Web安全;SQL語法樹;用戶輸入過濾

        1 引言

        隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,Web技術(shù)在許多領(lǐng)域都得到了廣泛的應(yīng)用,且已成為世界經(jīng)濟(jì)發(fā)展中的關(guān)鍵技術(shù)之一[1]。然而,隨著Web 技術(shù)在各個(gè)領(lǐng)域的普及和發(fā)展,也面臨著越來越多的安全威脅。并且,Web安全已經(jīng)成為網(wǎng)絡(luò)安全最主要的來源之一,因此,對Web安全的研究也就成為網(wǎng)絡(luò)安全領(lǐng)域的一個(gè)重點(diǎn)和熱點(diǎn)[2]。

        目前,影響Web安全的因素眾多,其中,SQL注入是最高危的漏洞之一。在2008年~2010年,SQL注入攻擊連續(xù)3年在開放式Web應(yīng)用程序安

        全項(xiàng)目(OWASP,Open Web Application Security Project)年度十大攻擊行為中排名第一。在2011年~2015年,SQL注入攻擊連續(xù)5年排入OWASP年度十大攻擊行為。

        基于上述分析,本文有機(jī)地融合了用戶輸入過濾措施和SQL語法樹結(jié)構(gòu)比較方法,提出了一種基于SQL語法樹的SQL注入過濾方法。實(shí)驗(yàn)結(jié)果表明,該方法可以有效地防止攻擊者繞過防注檢測,提高了對SQL注入攻擊的攔截;此外,在有效攔截SQL注入攻擊的同時(shí),該方法還降低了過濾用戶輸入數(shù)據(jù)的誤報(bào)率。

        2 SQL注入攻擊與防注檢繞過技術(shù)

        2.1 SQL注入攻擊定義

        SQL注入攻擊是一種由攻擊者通過影響應(yīng)用程序向后臺(tái)數(shù)據(jù)庫傳遞的 SQL查詢而引發(fā)的攻擊。文獻(xiàn)[3]中將 SQL 注入攻擊定義為:攻擊者在應(yīng)用程序的查詢語句中插入惡意指令來獲取數(shù)據(jù),即攻擊者利用現(xiàn)有應(yīng)用程序,將包含惡意代碼的數(shù)據(jù)傳遞給數(shù)據(jù)庫,從而修改SQL自身的語法和功能,導(dǎo)致了惡意的SQL語句被SQL解釋器執(zhí)行而產(chǎn)生攻擊。

        2.2 SQL注入攻擊攻擊原理

        SQL注入攻擊是一種通過操縱Web 輸入來修改后臺(tái) SQL語句以利用代碼進(jìn)行攻擊的技術(shù)[4]。SQL 注入攻擊種類很多,不同種類的攻擊方式雖然有所區(qū)別,但是原理相同:即把通過在Web輸入中包含惡意代碼,使Web應(yīng)用程序?qū)阂獯a拼接到動(dòng)態(tài)SQL語句中,從而獲取信息。

        下面通過一個(gè)萬能賬號(hào)的案例來說明 SQL注入攻擊。例如,一個(gè)登錄頁面,用戶輸入正確的賬號(hào)和密碼后,Web程序會(huì)查詢數(shù)據(jù)庫,如果存在此用戶并且密碼正確,將成功登錄;如果用戶不存在或密碼不正確,則會(huì)提示賬號(hào)或密碼錯(cuò)誤。其中,該數(shù)據(jù)庫為MySQL數(shù)據(jù)庫,Users表中有3列,分別為:user name、password、type這種場景中,該登錄頁面的動(dòng)態(tài)SQL語句為

        select * from users where username='"+user name +"' and password='"+ password +"'"

        攻擊者將使用賬號(hào)“'or 1=1 --”登錄,密碼為“123456”。此時(shí),SQL語句變?yōu)?/p>

        select * from users where user name ='1'or '1'='1'--and password ='123456'

        其中,'1'='1'為永真,“--”為注釋符,注釋符后面的SQL語句不執(zhí)行。

        經(jīng)上述分析,Web應(yīng)用程序執(zhí)行的SQL語句恒成立,因此,攻擊者能夠在不知道賬號(hào)和密碼的情況下登錄系統(tǒng)。

        2.3 防注檢繞過技術(shù)

        Web 應(yīng)用通常會(huì)使用部署在應(yīng)用代碼中或以WAF、IDS 形式存在的輸入過濾器來防御SQL注入攻擊[5]。下面用以上文案例中的環(huán)境來介紹大小寫、SQL注釋、編碼和動(dòng)態(tài)查詢等防注入檢測繞過技術(shù)。

        1) 大小寫技術(shù)

        因?yàn)閿?shù)據(jù)庫使用不區(qū)分大小寫的方式處理SQL關(guān)鍵字,因此,大小寫技術(shù)通過變換攻擊字符串中字符的大小寫來繞過防注檢測。例如,如果下列輸入被阻止:'UNION SELECT 1, password,3 FROM users--??梢酝ㄟ^下列方法來繞過防注入檢測:'UnIoN SelEcT 1, password,3 fRom users --。

        2) SQL注釋技術(shù)

        使用內(nèi)聯(lián)注釋來創(chuàng)建 SQL代碼段能夠繞過多種輸入防注入檢測,尤其是簡單的模式匹配防注入檢測。攻擊者可以在過濾了空白符的情況下使用內(nèi)聯(lián)注釋來分隔每個(gè)關(guān)鍵字。如

        '/**//**/UNION/**//**/SELECT/**//**/1,pass word,3/**//**/FROM /**//**/account/**/--

        在較早的MySQL版本中,甚至可以在SQL關(guān)鍵字內(nèi)部使用內(nèi)聯(lián)注釋,而繞過防注入檢測。如

        '/**//**/UN/**/I/**/ON/**//**/S/**/EL/**/E/* */CT/**//**/1,password,3/**//**/FR/**/O/**/M/**/ /**/users/**/--

        3) 編碼技術(shù)

        攻擊者可以通過編碼來避免惡意代碼中的關(guān)鍵字被黑名單匹配到,從而繞過防注入檢測。編碼技術(shù)有非常多種,如URL 編碼、UTF-8、十六進(jìn)制編碼。其中,攻擊中最為常用的編碼技術(shù)為URL編碼。假設(shè)過濾器能夠阻止空白符和內(nèi)聯(lián)注釋符/*,但無法阻止用了URL編碼的內(nèi)聯(lián)注釋的SQL攻擊。在這種情況下,可以用以下語句來繞

        過防注入檢測

        '%2f%2a*/UNION%2f%2a*/SELECT%2f%2a */password%2f%2a*/FROM%2f%2a*/users%--

        4) 動(dòng)態(tài)查詢技術(shù)

        由于許多數(shù)據(jù)庫都允許動(dòng)態(tài)執(zhí)行SQL查詢,導(dǎo)致攻擊者可以使用動(dòng)態(tài)查詢來繞過防注入檢測。不同的數(shù)據(jù)庫中動(dòng)態(tài)查詢執(zhí)行的實(shí)現(xiàn)會(huì)有所不同。例如,不同數(shù)據(jù)庫使用不同的語法來拼接字符串。假設(shè)SQL關(guān)鍵字SELECT被過濾了,可以用以下方式構(gòu)造它。

        Oracle:'SEL' || 'ECT'

        SQL Server:'SEL' + 'ECT'

        MySQL:'SEL''ECT'

        也可以使用CHAR函數(shù)(Oracle中為CHR函數(shù))來構(gòu)造SELECT

        CHAR(83)+CHAR(69)+CHAR(76)+CHAR(6 9)+CHAR(67)+CHAR(84)

        3 相關(guān)工作

        近年來,國內(nèi)外對SQL注入的研究取得了不少成果。在一定程度上防止了SQL注入攻擊。這些成果大致分為以下幾類。

        1) 用戶輸入過濾

        用戶輸入過濾方法通過對用戶提交的數(shù)據(jù)采用關(guān)鍵字匹配,基于正則表達(dá)式的規(guī)則匹配等方法進(jìn)行過濾。用戶輸入過濾能夠有效防御已知的SQL注入攻擊,但無法對未知的SQL注入攻擊進(jìn)行有效的防御。傳統(tǒng)的用戶輸入過濾方案有關(guān)鍵字過濾和基于正則表達(dá)式的特征規(guī)則過濾。

        Ivan Ristc 開發(fā)的開源項(xiàng)目ModSecurity[6]和Roesch M 開發(fā)的入侵檢測軟件Snort[7],這2個(gè)項(xiàng)目都是通過制定攻擊的特征規(guī)則集過濾用戶輸入,從而防御SQL注入攻擊。

        關(guān)鍵字過濾通過過濾SELECT、OR、AND等關(guān)鍵字防御SQL注入,但是對SQL注入的攔截率有限和較高的誤報(bào)率?;谡齽t表達(dá)式的特征規(guī)則過濾相對于關(guān)鍵字過濾有效地提高了率,降低了誤報(bào)率,能夠有效防御SQL注入。

        2) 基于機(jī)器學(xué)習(xí)的SQL注入檢測

        基于機(jī)器學(xué)習(xí)的 SQL注入檢測技術(shù)利用機(jī)器學(xué)習(xí)算法學(xué)習(xí)所有可能的SQL注入攻擊,但是該方法的效果十分依賴于機(jī)器學(xué)習(xí)算法的精確度和學(xué)習(xí)樣本的準(zhǔn)確度。Kim等[8]提出了一種基于數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的SQL注入攻擊檢測方法。該方法提取了數(shù)據(jù)庫日志中內(nèi)部查詢樹的特征向量,之后通過SVM算法對這些特征向量進(jìn)行分類,從而達(dá)到防御SQL注入攻擊的目的。

        3) 語法結(jié)構(gòu)比較

        語法結(jié)構(gòu)比較的方法能夠高效地防御 SQL注入攻擊,但是它的覆蓋率很難達(dá)到 100%,并且這種方法可能需要修改源碼。石聰聰?shù)萚9]提出了一種基于SQL語法樹特征匹配的方法,該方法在后臺(tái)中維持一個(gè)由正常 SQL語句提取的特征知識(shí)庫。當(dāng)Web應(yīng)用程序生成動(dòng)態(tài)SQL語句時(shí)和后臺(tái)的知識(shí)庫進(jìn)行匹配。若匹配成功,則為合法SQL語句;若匹配不成功,根據(jù)基于風(fēng)險(xiǎn)值的動(dòng)態(tài)特征過濾算法來進(jìn)行識(shí)別。通過分析可知,該方法在知識(shí)庫中的語法樹特征數(shù)量較大時(shí),會(huì)存在使匹配效率降低的問題。

        4) 參數(shù)化查詢和存儲(chǔ)化過程[10,11]

        參數(shù)化查詢是在代碼層對 SQL注入攻擊進(jìn)行防御[12]?,F(xiàn)今的大部分編程語言都能通過參數(shù)化查詢語句訪問數(shù)據(jù)庫。參數(shù)化查詢語句讓數(shù)據(jù)庫訪問API可以使用占位符或綁定變量來向SQL查詢提供參數(shù)。使用參數(shù)化查詢能夠避免或解決很多應(yīng)用中常見SQL注入問題。

        正確地配置存儲(chǔ)過程的訪問權(quán)限能夠有效地防止或減輕SQL注入攻擊產(chǎn)生的影響,提高系統(tǒng)的安全性[13]。并且大部分?jǐn)?shù)據(jù)庫現(xiàn)在都能夠支持存儲(chǔ)過程,允許通過存儲(chǔ)過程對數(shù)據(jù)庫進(jìn)行訪問。

        5) 敏感信息加密

        對數(shù)據(jù)庫中的賬號(hào)密碼、客戶信息、交易信息等敏感數(shù)據(jù)進(jìn)行加密,能夠盡量地降低受到SQL注入攻擊后的危害。楊玉龍等[14]提出了一種新的防止SQL注入的方案,結(jié)合同態(tài)加密技術(shù),對用戶的輸入進(jìn)行同態(tài)加密,使攻擊者輸入的特殊字符或拼接的SQL語句失去其本身的意義,該方案的使用有效地防止了SQL注入攻擊。

        6) 網(wǎng)絡(luò)測量

        SQL注入在請求長度、連接數(shù)以及特征串等方面相較于正常用戶請求的流量有較大區(qū)別。據(jù)此,趙宇飛等[15]首次從網(wǎng)絡(luò)流量分析的角度檢測 SQL

        注入行為,提出了LFF(length-frequency- feature)檢測方法,通過連接頻率檢測、長度檢測和特征串檢測,能夠較準(zhǔn)確地發(fā)現(xiàn)網(wǎng)絡(luò)中的SQL攻擊行為。

        4 基于SQL語法樹的SQL注入過濾方法

        4.1 概述

        對于正常的用戶輸入數(shù)據(jù),根據(jù)數(shù)字型和字符型,將用戶輸入的數(shù)據(jù)代入SQL語句“select a from b where c=?”(其中?為占位符)。其生成的SQL語句的特征都是相同的,如該SQL語法樹的節(jié)點(diǎn)總數(shù)是一樣的。以用戶輸入admin為例,其SQL語法樹的結(jié)構(gòu)如圖1所示。

        圖1 正常的SQL語法樹

        而對于SQL注入攻擊輸入,將攻擊輸入數(shù)據(jù)代入相同的 SQL語句中將會(huì)報(bào)錯(cuò)或改變原有的SQL語句的語法結(jié)構(gòu),如增加某個(gè)節(jié)點(diǎn)、語法樹結(jié)構(gòu)變化等。以用戶輸入admin’ or ‘1’=’1為例,其SQL語法樹的結(jié)構(gòu)如圖2所示。

        圖2 注入攻擊的SQL語法樹

        因此,如果某個(gè)輸入數(shù)據(jù)帶入SQL語句“select a from b where c=?”(?為占位符)后,該SQL語句的語法結(jié)構(gòu)特征(SQL語法樹節(jié)點(diǎn)總數(shù))與預(yù)期的不符,則說明該用戶輸入可能為SQL注入攻擊。

        基于上述分析,本文結(jié)合了用戶輸入過濾措施和SQL語法樹結(jié)構(gòu)比較措施的特點(diǎn),提出了一種基于SQL語法樹的SQL注入過濾方法。該方法的設(shè)計(jì)思路為:將SQL注入過濾分為轉(zhuǎn)碼階段和SQL語法樹比較階段這2個(gè)部分。其中,轉(zhuǎn)碼階段檢測用戶輸入的數(shù)據(jù),將用戶輸入中字符的大小寫、編碼、注釋符進(jìn)行轉(zhuǎn)換,以防止攻擊者繞過檢測。SQL語法樹比較階段通過將用戶輸入數(shù)據(jù)分別以數(shù)字型和字符型帶入“select a from b where c=?”(?為占位符)中,分別對兩條生成后的SQL語句進(jìn)行語法解析生成語法樹。若2棵SQL語法樹的特征(SQL語法的節(jié)點(diǎn)總數(shù))跟期望中的特征一樣,則該用戶輸入是合法的。若兩棵SQL語法樹其中一顆SQL語法樹的特征與期望中的不一致,則判斷該用戶輸入為SQL注入攻擊。

        4.2 SQL注入攻擊檢測過程

        本文提出的基于SQL語法樹的SQL注入過濾方法的詳細(xì)流程如圖3所示。

        該方法的具體工作過程描述如下。

        1) 首先,將用戶輸入中字符的大小寫、編碼、注釋符進(jìn)行轉(zhuǎn)換。消除SQL語句前后的空白,將其中的連續(xù)空白字符(包括空格、TAB和回車換行)替換成單個(gè)空格。之后將SQL語句全變成小寫形式(或大寫形式),并轉(zhuǎn)化各種編碼,以此防止攻擊者繞過檢測。

        2) 在不知道用戶輸入的該參數(shù)是字符型還是數(shù)字型的情況下。先假設(shè)用戶輸入的該參數(shù)為字符型,用輸入的數(shù)據(jù)X代入SQL語句“select a from b where c=?”(?為占位符),得到SQL語句“select a from b where c=X”。

        3) 對SQL語句“select a from b where c=X”進(jìn)行SQL解析得到SQL語法樹。若解析失敗,則直接結(jié)束,并將該輸入判定為SQL注入;若解析成功繼續(xù)步驟4)。

        4) 將步驟3)生成的SQL語法樹的特征(SQL語法的節(jié)點(diǎn)總數(shù))與期望中的特征進(jìn)行匹配。若一樣,繼續(xù)步驟5);若不一樣直接結(jié)束,并將該輸入判定為SQL注入攻擊。

        5) 判斷用戶輸入的數(shù)據(jù)中第一個(gè)空格前的數(shù)

        據(jù)是不是數(shù)字。若是數(shù)字,繼續(xù)步驟6);若不是數(shù)字,直接結(jié)束,并將該輸入判定為正常輸入。

        圖3 過濾流程

        6) 假設(shè)用戶輸入的該參數(shù)為數(shù)字型,將用輸入的數(shù)據(jù)X代入SQL語句“select a from b where c=?”(?為占位符),得到SQL語句“select a from b where c=X”。

        7) 對SQL語句“select a from b where c=X”進(jìn)行SQL解析得到SQL語法樹。若解析失敗,則直接結(jié)束,并將該輸入判定為正常輸入;若解析成功,繼續(xù)步驟8)。

        8) 將步驟7)生成的SQL語法樹的特征(SQL語法的節(jié)點(diǎn)總數(shù))與期望中的特征進(jìn)行匹配。若一樣,則將該輸入判定為正常輸入;若不一樣,則將該輸入判定為SQL注入攻擊。

        4.3 模塊介紹

        本文所提方法的設(shè)計(jì)模塊如圖4所示。

        圖4 系統(tǒng)模塊

        1) 數(shù)據(jù)提取模塊:負(fù)責(zé)提取用戶輸入的數(shù)據(jù)。

        2) 轉(zhuǎn)碼模塊:負(fù)責(zé)將用戶輸入數(shù)據(jù)中字符的大小寫、編碼、注釋符進(jìn)行轉(zhuǎn)換。

        3) 判斷模塊:負(fù)責(zé)將解析的 SQL語法樹的特征值(節(jié)點(diǎn)總數(shù))與期望的特征進(jìn)行比對,根據(jù)結(jié)果判斷用戶輸入的能不能構(gòu)成 SQL注入攻擊。在與SQL解析模塊進(jìn)行第一交互后,根據(jù)用戶輸入數(shù)據(jù)中的第一個(gè)空格前的數(shù)據(jù)是不是數(shù)字,判斷是否與SQL解析模塊進(jìn)行第二次交互。

        4) SQL解析模塊:負(fù)責(zé)將SQL語句解析為SQL語法樹,包括詞法分析和語法分析。詞法分析負(fù)責(zé)根據(jù)SQL的詞法,對SQL語句進(jìn)行分解,生成一個(gè)個(gè)獨(dú)立的單詞。語法分析負(fù)責(zé)在詞法分析的基礎(chǔ)上,根據(jù)SQL語法來判斷該SQL語法是否符合語法邏輯,并構(gòu)造出SQL語法樹。

        5) 日志:負(fù)責(zé)接收其他模塊的錯(cuò)誤信息,并記錄日志。

        6) 配置文件:負(fù)責(zé)接收管理員的指令,控制是基于SQL語法樹過濾模塊的開關(guān),即是否對用戶輸入進(jìn)行過濾。

        5 實(shí)驗(yàn)與分析

        本文采用的測試案例(Web應(yīng)用程序)為小型的J2EE招聘系統(tǒng),該系統(tǒng)包含登錄、查看簡歷等功能,且代碼中存在SQL注入漏洞。服務(wù)器為Tomcat,后臺(tái)數(shù)據(jù)庫為MySQL。測試數(shù)據(jù)為SQL注入攻擊輸入100條(由SQLMAP生成),正常輸入200條。其中,200條的正常輸入中100條包含關(guān)鍵字的正常輸入。為了便于測試該方法對攻擊的攔截率和誤報(bào)率,本文對基于SQL語法樹的過濾方法、基于關(guān)鍵字過濾的方法和基于正則表達(dá)式的過濾方法(含30條過濾規(guī)則)進(jìn)行了比較。測試結(jié)果如圖5、圖6和表1所示。

        圖5 SQL注入攔截率

        圖6 用戶輸入誤報(bào)率

        表1 SQL注入攔截率和誤報(bào)率

        圖5和圖6表明本文提出的基于SQL語法樹的過濾方法對SQL注入攻擊有較好的防御效果和較低的誤報(bào)率。該方法相比基于關(guān)鍵字過濾的方法和基

        于正則表達(dá)式的過濾方法能夠有效地提高攔截率。

        為了測試基于 SQL語法樹的過濾方法對Web應(yīng)用程序性能的影響,本文分別對Web應(yīng)用程序未加載過濾模塊和Web應(yīng)用程序加載過濾模塊這2種情況分別進(jìn)行測試,測試結(jié)果如圖7~圖9和表2所示。

        圖7 正常輸入測試時(shí)間

        圖9 SQL注入攻擊測試時(shí)間

        表2 系統(tǒng)響應(yīng)時(shí)間

        圖7表明,對于不含攻擊關(guān)鍵字的正常訪問,加載了過濾模塊的Web應(yīng)用程序相對于未加載過濾模塊的Web應(yīng)用程序響應(yīng)時(shí)間有略微的延遲,但是基本沒有受到影響。圖8表明,對含有攻擊關(guān)鍵字的正常訪問而言,過濾模塊對開頭為數(shù)字的輸入數(shù)據(jù)的響應(yīng)時(shí)間相對較慢,對開頭為非數(shù)字的輸入數(shù)據(jù)響應(yīng)時(shí)間較快,致使加載了過濾模塊的Web應(yīng)用程序響應(yīng)時(shí)間較慢。圖9表明,對于SQL注入攻擊而言,未加載過濾模塊時(shí),SQL注入可能改變了后臺(tái)數(shù)據(jù)庫運(yùn)行的SQL語句,從而導(dǎo)致響應(yīng)時(shí)間有了明顯增加;加載了過濾模塊之后,由于過濾模塊中對復(fù)雜的SQL語句的解析時(shí)間較長,所以響應(yīng)時(shí)間增加。因此,對于SQL注入攻擊,未加載過濾模塊和加載了過濾模塊的系統(tǒng)響應(yīng)時(shí)間都有所延遲,導(dǎo)致兩者的系統(tǒng)響應(yīng)時(shí)間較為接近。加載了過濾模塊的Web應(yīng)用程序相對未加載過濾模塊的Web應(yīng)用程序的響應(yīng)延遲在可接受的范圍內(nèi),對用戶體驗(yàn)的影響不大。

        6 結(jié)束語

        SQL注入攻擊是 Web應(yīng)用面臨的一個(gè)巨大安全挑戰(zhàn)。本文針對SQL注入攻擊,結(jié)合了用戶輸入過濾措施和SQL語法樹結(jié)構(gòu)比較措施,提出了一種基于SQL語法樹的過濾方法。實(shí)驗(yàn)分析表明,該方法相較傳統(tǒng)的基于關(guān)鍵字過濾的方法和基于正則表達(dá)式的過濾方法能夠有效地提高攔截率并降低誤報(bào)率。

        [1] 鄭成興. 網(wǎng)絡(luò)入侵防范的理論與實(shí)踐[M]. 北京: 機(jī)械工業(yè)出版社, 2006. ZHENG C X. Network intrusion prevention theory and practice[M]. Beijing: China Machine Press,2006.

        [2] 高鵬, 嚴(yán)望佳. 構(gòu)建安全的 Web站點(diǎn)[M]. 北京: 清華大學(xué)出版社, 1999. GAO P, YAN W J. Build a secure Web site[M]. Beijing:Tsinghua University Press,1999.

        [3] ANLEY, Chris. Advanced SQL injection in SQL server applica-

        tions[R]. An NGSSoftware Insight Security Research (NISR) Publication, 2002.

        [4] CLARKE J. SQL Injection Attacks and Defense[M]. Amsterdam: Elsevier, 2009.

        [5] 李鑫, 張維緯, 隋子暢, 等. 新型SQL注入及其防御技術(shù)研究與分析[J]. 信息網(wǎng)絡(luò)安全,2016,2:66-73. LI X, ZHANG W W, SUI Z C, et al. Research and analysis on the novel SQL injection and defense technique[J]. Netinfo Security, 2016,2:66-73.

        [6] BECHER M. Web application firewalls[D]. Akademikerverlag: Universiti Teknologi MARA, 2012.

        [7] ROESCH M. Snort: lightweight intrusion detection for networks[C]//The 13th Conference on Systems Administration (LISA-99), Usenix Association. 1999:229-238.

        [8] MI-YEON K, DONG H L. Data-mining based SQL injection attack detection using internal query trees[J]. Expert Systems with Applications, 2014(41): 5416-5430.

        [9] 石聰聰, 張濤, 余勇, 等. 一種新的SQL注入防護(hù)方法的研究與實(shí)現(xiàn)[J]. 計(jì)算機(jī)科學(xué), 2012,(S1):60-64. SHI C C, ZHANG T, YU Y,LIN W M. New approach for SQL-injection detection[J].Computer Science,2012,(S1):60-64.

        [10] 成曉利. Web 應(yīng)用程序SQL 注入攻擊漏洞測試系統(tǒng)的研究與實(shí)現(xiàn)[D]. 成都: 西南交通大學(xué),2013. CHENG X L. Research and implementation of Web application SQL injection vulnerability detection system[D]. Chengdu: Southwest Jiaotong University, 2013.

        [11] 褚龍現(xiàn). ASP.NET 應(yīng)用中SQL注入攻擊的分析與防范[J]. 計(jì)算機(jī)與現(xiàn)代化, 2014,(3):151-153,160. CHU L X. Analysis and defense of SQL injection attacks in ASP.NET application[J].Computer and Modernization, 2014,(3): 151-153,160.

        [12] WEI K, MUTHUPRASANNA M, KOTHARI S. Preventing SQL injection attacks in stored procedures[C]//IEEE Conference on Piscataway, Software Engineering. 2006: 191-198.

        [13] 黃龍軍. 存儲(chǔ)過程技術(shù)在網(wǎng)絡(luò)考試系統(tǒng)SQL 注入攻擊防御上的應(yīng)用[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用, 2013,22(1):103-106. HUANG L J. Application of stored procedures to defense against SQL injection attacks in online examination system[J].Computer Systems & Applications,2013,22(1):103-106.

        [14] 楊玉龍, 彭長根, 周洲. 基于同態(tài)加密的防止 SQL注入攻擊解決方案[J].信息網(wǎng)絡(luò)安全, 2014,(1):30-33. YANG Y L,PENG C G,ZHOU Z.A solution of preventing SQL injection attacks based on homomorphic encryption[J]. Netinfo Security, 2014,(1):30-33.

        [15] 趙宇飛, 熊剛, 賀龍濤, 等. 面向網(wǎng)絡(luò)環(huán)境的SQL注入行為檢測方法[J]. 通信學(xué)報(bào), 2016,02:88-97. ZHAO Y F, XIONG G, HE L T, et al. Approach to detecting SQL injection behaviors in network environment[J]. Journal on Communications, 2016,02:88-97.

        韓宸望(1993-),男,福建漳州人,福建師范大學(xué)碩士生,主要研究方向?yàn)樾畔踩?/p>

        林暉(1977-),男,福建福州人,博士,福建師范大學(xué)副教授、碩士生導(dǎo)師,主要研究方向?yàn)槲锫?lián)網(wǎng)、云計(jì)算、信任管理、無線通信網(wǎng)絡(luò)、網(wǎng)絡(luò)與信息安全。

        黃川(1979-),男,福建福州人,博士,福建師范大學(xué)講師,主要研究方向?yàn)橛?jì)算機(jī)網(wǎng)絡(luò)技術(shù)、無線網(wǎng)絡(luò)技術(shù)。

        Research on the SQL injection filtering based on SQL syntax tree

        HAN Chen-wang1,2, LIN Hui1,2, HUANG Chuan1,2
        (1. School of Mathematics and Computer Science, Fujian Normal University, Fuzhou 350117, China;
        2. Fujian Provincial Key Laboratory of Network Security and Cryptology, Fujian Normal University, Fuzhou 350117, China)

        The development of Web application make its areas become more and more widely. Followed by a security problem is becoming more and more serious, especially for the SQL injection attacks, which bring a huge challenge to the Web application security. A new SQL injection filtering method was proposed to detect SQL injection attack by introducing a security strategy based on SQL syntax tree to the design of the user input filtering. The experimental results show that the method can effectively prevent SQL injection attacks, and has higher recognition rate and lower rate of false positives.

        SQL injection attack, Web security, SQL syntax tree, user input filtering

        TP309

        A

        10.11959/j.issn.2096-109x.2016.00113

        2016-08-17;

        2016-10-14。通信作者:林暉,linhui@fjnu.edu.cn

        國家自然科學(xué)基金資助項(xiàng)目(No.61363068, No.61472083);福建省引導(dǎo)基金資助項(xiàng)目(No.2016Y0031);福州市科技局基金資助項(xiàng)目(No.2015-G-54, No.2015-G-84)

        Foundation Items: The National Natural Science Foundation of China (No.61363068, No.61472083), Pilot Project of Fujian Province (No.2016Y0031), Project of Fuzhou Municipal Science and Technology Bureau (No.2015-G-54, No.2015-G-84)

        猜你喜歡
        關(guān)鍵字攻擊者語句
        履職盡責(zé)求實(shí)效 真抓實(shí)干勇作為——十個(gè)關(guān)鍵字,盤點(diǎn)江蘇統(tǒng)戰(zhàn)的2021
        基于微分博弈的追逃問題最優(yōu)策略設(shè)計(jì)
        重點(diǎn):語句銜接
        成功避開“關(guān)鍵字”
        正面迎接批判
        愛你(2018年16期)2018-06-21 03:28:44
        精彩語句
        有限次重復(fù)博弈下的網(wǎng)絡(luò)攻擊行為研究
        如何搞定語句銜接題
        基于用戶反饋的關(guān)系數(shù)據(jù)庫關(guān)鍵字查詢系統(tǒng)
        誘導(dǎo)性虛假下載鏈接不完全評測
        无码不卡高清毛片免费| 精品理论一区二区三区| 日本美女性亚洲精品黄色| av中文字幕一区不卡| 亚欧色一区w666天堂| 久久福利青草精品免费| 亚洲色图在线观看视频| 国产成人精品一区二免费网站 | 中文字幕国产亚洲一区| 精品国产性色无码av网站| 国产精品99久久免费| 亚洲性色ai无码| 中文字幕一二三四五六七区| 熟女人妇 成熟妇女系列视频| 人人爽久久涩噜噜噜av| 96免费精品视频在线观看| 亚洲va欧美va人人爽夜夜嗨| 人妻少妇精品视频一区二区三区| 日韩一区二区av极品| 少妇粉嫩小泬喷水视频www| 911国产精品| 亚洲AV永久无码精品一区二国 | 国产精品日本一区二区三区| 亚洲高清在线天堂精品| 东北妇女xx做爰视频| 中文人妻无码一区二区三区信息 | 亚洲熟妇无码av不卡在线播放| 国产精品国产三级国产av主| 国产老熟女精品一区二区| 小妖精又紧又湿高潮h视频69| 无码成人一区二区| 国产在线一区观看| 日韩一二三四区免费观看 | 日韩精品成人区中文字幕| 久久露脸国产精品| 999精品免费视频观看| 国产成人精品中文字幕| av在线观看一区二区三区| 精品久久久久成人码免费动漫 | 一区二区三区在线免费av| 亚洲精品国产第一综合色吧|