亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種數(shù)據(jù)庫的數(shù)據(jù)處理方法和系統(tǒng)的制作方法

文檔序號:6494070閱讀:276來源:國知局
一種數(shù)據(jù)庫的數(shù)據(jù)處理方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開了一種數(shù)據(jù)庫的數(shù)據(jù)處理方法和系統(tǒng)。本實施例采用破壞SQL關(guān)鍵詞在SQL語句中的語法含義來對SQL指令進行預處理,然后才根據(jù)該預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理,從而使得即便執(zhí)行了遺漏SQL轉(zhuǎn)義步驟而構(gòu)造出的SQL指令時,也會因為SQL語法錯誤而無法執(zhí)行,避免產(chǎn)生信息泄漏等危害;而對于不包含SQL關(guān)鍵詞的SQL指令所需參數(shù),也不受流程的任何影響,即使執(zhí)行了漏掉SQL轉(zhuǎn)義步驟而構(gòu)造的SQL指令,也不會因為產(chǎn)生可執(zhí)行命令而導致信息泄漏或影響到內(nèi)容展示和用戶閱讀效果等后果。
【專利說明】一種數(shù)據(jù)庫的數(shù)據(jù)處理方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)庫的數(shù)據(jù)處理方法和系統(tǒng)。【背景技術(shù)】
[0002]隨著信息技術(shù)的發(fā)展,數(shù)據(jù)庫的作用也越發(fā)顯得重要,如何保護數(shù)據(jù)庫中信息的安全,一直是人們所關(guān)注的問題。結(jié)構(gòu)化查詢語言(SQL, Structured Query Language)注入攻擊是黑客對數(shù)據(jù)庫進行攻擊的常用手段之一,其中,SQL是一種數(shù)據(jù)庫查詢和程序設計語言,用于存取數(shù)據(jù)以及查詢、更新和管理關(guān)系數(shù)據(jù)庫系統(tǒng)。SQL注入攻擊,指的是在輸入?yún)?shù)的字符串之中注入SQL指令,使得其能夠在設計不良的程序當中被忽略檢查,從而使得這些注入的SQL指令能夠被數(shù)據(jù)庫服務器誤認為是正常的SQL指令而運行,最終致使數(shù)據(jù)庫信息泄漏等嚴重后果的攻擊行為。
[0003]針對SQL注入攻擊,現(xiàn)有技術(shù)主要采用保護方法有:(I)動態(tài)拼接SQL語句的時候?qū)?shù)值進行SQL轉(zhuǎn)義,避免構(gòu)造出惡意SQL語句;(2)對已經(jīng)拼接好的SQL語句做語法分析,通過相應算法檢測來推測當前SQL語句是否惡意;(3)針對網(wǎng)頁(web)請求參數(shù)值強行替換單個單引號為連續(xù)兩個單引號,再直接進行SQL轉(zhuǎn)義。(4)使用存儲過程或第三方中間
;五古
P口口 ο
[0004]在對現(xiàn)有技術(shù)的研究和實踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),現(xiàn)有的幾種保護方法雖然在一定程度上可以避免SQL注入攻擊,但是其保護效果并不是很好,可能會因為遺漏SQL轉(zhuǎn)義步驟而產(chǎn)生可執(zhí)行命令,從而導致信息泄漏等后果,而且可能會影響到內(nèi)容展示和用戶閱讀效果。

【發(fā)明內(nèi)容】

[0005]本發(fā)明實施例提供一種數(shù)據(jù)庫的數(shù)據(jù)處理方法和系統(tǒng),可以有效地避免SQL注入攻擊,提高對數(shù)據(jù)庫的保護效果,而且,不會影響到內(nèi)容展示和用戶閱讀效果。
[0006]一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,包括:
[0007]接收數(shù)據(jù)庫數(shù)據(jù)處理請求,根據(jù)所述數(shù)據(jù)庫數(shù)據(jù)處理請求獲取SQL指令所需參數(shù);
[0008]對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),所述預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理;
[0009]根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0010]可選的,其中,所述對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),所述預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理,可以包括:
[0011]對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別;對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞尾部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù);或者,對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞頭部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù)。
[0012]可選的,其中,所述對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別,可以包括:
[0013]對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞匹配,得到匹配后SQL關(guān)鍵詞;根據(jù)SQL關(guān)鍵詞在SQL語句中的語法對匹配后SQL關(guān)鍵詞進行檢查,得到符合語法的SQL關(guān)鍵詞。
[0014]可選的,所述根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理,可以包括:
[0015]根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0016]或者,可選的,所述根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理,可以包括:
[0017]對所述預處理后SQL指令所需參數(shù)進行SQL轉(zhuǎn)義和預處理還原,得到還原后SQL指令所需參數(shù),所述預處理還原為刪除預處理時所拼接的私有萬國碼字符;根據(jù)所述還原后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0018]相應的,本發(fā)明實施例還提供一種數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng),在本發(fā)明實施例中,簡稱為數(shù)據(jù)處理系統(tǒng),包括接收單元、第一處理單元和第二處理單元;
[0019]接收單元,用于接收數(shù)據(jù)庫數(shù)據(jù)處理請求,根據(jù)所述數(shù)據(jù)庫數(shù)據(jù)處理請求生成SQL指令所需參數(shù);
[0020]第一處理單元,用于對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),所述預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理;
[0021]第二處理單元,用于根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0022]可選的,其中,所述第一處理單元可以包括識別子單元和預處理子單元;
[0023]識別子單元,用于對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別;
[0024]預處理子單元,用于對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞尾部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù);或者,對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞頭部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù)。
[0025]可選的,其中,所述識別子單元,具體可以用于對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞匹配,得到匹配后SQL關(guān)鍵詞,根據(jù)SQL關(guān)鍵詞在SQL語句中的語法對匹配后SQL關(guān)鍵詞進行檢查,得到符合語法的SQL關(guān)鍵詞。
[0026]可選的,第二處理單元,具體用于根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0027]或者,可選的,第二處理單元,具體用于對所述預處理后SQL指令所需參數(shù)進行SQL轉(zhuǎn)義和預處理還原,得到還原后SQL指令所需參數(shù),所述預處理還原為刪除預處理時所拼接的私有萬國碼字符;根據(jù)所述還原后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0028]本發(fā)明實施例采用破壞SQL關(guān)鍵詞在SQL語句中的語法含義來對SQL指令所需參數(shù)進行預處理,然后才根據(jù)該預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理,從而使得即便執(zhí)行了遺漏SQL轉(zhuǎn)義步驟而構(gòu)造出的SQL指令時,也會因為SQL語法錯誤而無法執(zhí)行,避免產(chǎn)生信息泄漏等危害;而對于不包含SQL關(guān)鍵詞的SQL指令所需參數(shù),也不受流程的任何影響,即使執(zhí)行了漏掉SQL轉(zhuǎn)義步驟而構(gòu)造的SQL指令,也不會因為產(chǎn)生可執(zhí)行命令而導致信息泄漏或影響到內(nèi)容展示和用戶閱讀效果等后果,即,采用該方案可以提高對數(shù)據(jù)庫的保護效果,而且,不會影響到內(nèi)容展示和用戶閱讀效果。
【專利附圖】

【附圖說明】
[0029]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0030]圖1是本發(fā)明實施例提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法的流程圖;
[0031]圖2是本發(fā)明實施例提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法的另一流程圖;
[0032]圖3是本發(fā)明實施例提供的數(shù)據(jù)庫的數(shù)據(jù)處理方法的又一流程圖;
[0033]圖4是本發(fā)明實施例提供的數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0034]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0035]為了更好地對本發(fā)明實施例進行說明,以下將對本發(fā)明實施例所涉及的幾個概念進行簡略說明,如下:
[0036]( I) SQL 關(guān)鍵詞;
[0037]SQL關(guān)鍵詞,在本發(fā)明實施例中簡稱為關(guān)鍵詞,是SQL語法中被保留有特殊含義的詞語(不區(qū)分大小寫),比如可以包括select、from、delete、update、insert、or、and和into等等,此外,各個數(shù)據(jù)庫廠商的具體實現(xiàn)中又擴展定義了自己的SQL關(guān)鍵詞,比如數(shù)據(jù)庫 mysql5.5 版本新增的 SQL 關(guān)鍵詞有:GENERAL、IGNORE_SERVER_IDS、MASTER_HEARTBEAT_PERIOD、MAXVALUE、RESIGNAL、SIGNAL 和 SLOW 等,在此不再贅述。
[0038](2)萬國碼(Unicode);
[0039]萬國碼是計算機領(lǐng)域的一項業(yè)界標準,該規(guī)范給每個字符提供了一個唯一的數(shù)字,不論是什么平臺、不論是什么程序、以及不論是什么語言。
[0040]( 3 )萬國碼私有使用區(qū);
[0041]萬國碼私有使用區(qū)指的是萬國碼規(guī)范中針對未進行萬國碼編碼的特殊字符,比如古文字,或系統(tǒng)私有字符,所預留的編碼區(qū)域,各系統(tǒng)可使用這個區(qū)域中的編碼來表示在本系統(tǒng)內(nèi)的特殊字符,萬國碼私有使用區(qū)中的字符即稱為私有萬國碼字符。
[0042](4) SQL 轉(zhuǎn)義;
[0043]在SQL語法中,參數(shù)值里的單引號需要用兩將單個連續(xù)單引號來表示,因此將參數(shù)值字符串中單個單引號替換成連續(xù)兩個單引號的做法稱為SQL轉(zhuǎn)義。[0044]本發(fā)明實施例提供一種數(shù)據(jù)庫的數(shù)據(jù)處理方法和系統(tǒng)。以下分別進行詳細說明。
[0045]實施例一、
[0046]本發(fā)明實施例將從數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng)的角度來進行描述,該數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng)具體可以安裝在終端或服務器中。
[0047]一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,包括:接收數(shù)據(jù)庫數(shù)據(jù)處理請求,根據(jù)該數(shù)據(jù)庫數(shù)據(jù)處理請求獲取SQL指令所需參數(shù);對該SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),其中,該預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理;根據(jù)預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)該生成的SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0048]如圖1所示,具體流程可以如下:
[0049]101、接收數(shù)據(jù)庫數(shù)據(jù)處理請求,根據(jù)該數(shù)據(jù)庫數(shù)據(jù)處理請求獲取SQL指令所需參數(shù);
[0050]其中,數(shù)據(jù)庫數(shù)據(jù)處理請求具體可以為網(wǎng)頁(WEB)請求或數(shù)據(jù)庫數(shù)據(jù)查詢請求等請求。
[0051]102、對步驟101中獲取到的SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),其中,預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理,例如,具體可以如下:
[0052]對SQL關(guān)鍵詞進行SQL關(guān)鍵詞尾部拼接私有萬國碼字符(即Unicode私有使用區(qū)字符)的替換處理,得到預處理后SQL指令所需參數(shù);或者,對SQL關(guān)鍵詞進行SQL關(guān)鍵詞頭部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù)。
[0053]即步驟“對步驟101中獲取到的SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù)”(即步驟102)具體可以如下:
[0054](I)對步驟101中獲取到的SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別;例如,具體可以如下:
[0055]對步驟101中獲取到的SQL指令所需參數(shù)進行SQL關(guān)鍵詞匹配,得到匹配后SQL關(guān)鍵詞,根據(jù)SQL關(guān)鍵詞在SQL語句中的語法對匹配后SQL關(guān)鍵詞進行檢查,得到符合語法的SQL關(guān)鍵詞。
[0056]可見,此處的SQL關(guān)鍵詞識別并不是簡單的匹配,而是在匹配之后,還要進行再次檢查,從而可以精準找出符合需求的SQL關(guān)鍵詞。
[0057](2)對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞尾部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù);或者,對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞頭部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù)。
[0058]例如,若在(I)中已得到符合語法的SQL關(guān)鍵詞,則此時具體可以對該符合語法的SQL關(guān)鍵詞進行SQL關(guān)鍵詞尾部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù);或者,也可以對該符合語法的SQL關(guān)鍵詞進行頭部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù)。
[0059]需說明的是,以上僅僅以在SQL關(guān)鍵詞的尾部或頭部拼接私有萬國碼字符為例進行說明,應當理解的是,還可以采用其他的預處理方式,即只要可以破壞SQL關(guān)鍵詞在SQL語句中的語法含義即可。[0060]103、根據(jù)預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理;例如,具體可以如下:
[0061]根據(jù)該預處理后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0062]或者,也可以對預處理后SQL指令所需參數(shù)進行SQL轉(zhuǎn)義和預處理還原,然后才根據(jù)還原后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,即步驟“根據(jù)預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理”具體也可以如下:
[0063]對預處理后SQL指令所需參數(shù)進行SQL轉(zhuǎn)義和預處理還原,得到還原后SQL指令所需參數(shù),然后根據(jù)該還原后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
[0064]其中,預處理還原為:刪除預處理時所拼接的私有萬國碼字符。
[0065]需說明的是,由于在預處理時,所拼接的是私有萬國碼字符,而通用的瀏覽器對該私有萬國碼字符無法確認展示方式,所以該私有萬國碼字符將會被瀏覽器所忽略,即用戶肉眼并看不出來,因此不會影響到內(nèi)容展示和用戶閱讀效果。
[0066]由上可知,本實施例采用破壞SQL關(guān)鍵詞在SQL語句中的語法含義來對SQL指令所需參數(shù)進行預處理,然后才根據(jù)該預處理后SQL指令所需參數(shù)生成SQL指令,并運行該SQL指令以進行數(shù)據(jù)庫的數(shù)據(jù)處理,從而使得即便執(zhí)行了遺漏SQL轉(zhuǎn)義步驟而構(gòu)造出的SQL指令時,也會因為SQL語法錯誤而無法執(zhí)行,避免產(chǎn)生信息泄漏等危害;而對于不包含SQL關(guān)鍵詞的SQL指令所需參數(shù),也不受流程的任何影響,即使執(zhí)行了漏掉SQL轉(zhuǎn)義步驟而構(gòu)造的SQL指令,也不會因為產(chǎn)生可執(zhí)行命令而導致信息泄漏或影響到內(nèi)容展示和用戶閱讀效果等后果,即,采用該方案可以提高對數(shù)據(jù)庫的保護效果,而且,不會影響到內(nèi)容展示和用戶閱讀效果。
[0067]根據(jù)實施例所描述的方法,以下將在實施例二和三中舉例作進一步詳細說明。
[0068]實施例二、
[0069]在本實施例中,將以數(shù)據(jù)庫數(shù)據(jù)處理請求具體為WEB請求為例進行說明,其中,為了描述方便,在本發(fā)明實施例中,將該數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng)簡稱為數(shù)據(jù)處理系統(tǒng)。
[0070]例如,該數(shù)據(jù)處理系統(tǒng)的應用場景如下:
[0071]該數(shù)據(jù)處理系統(tǒng)記錄用戶帳號信息的數(shù)據(jù)表名為“userinfo”,對應的帳號信息字段名為“username”,密碼字段名為“pwd”,用戶提交的用戶帳號參數(shù)名為“username”,密碼參數(shù)名為“password”,SQL轉(zhuǎn)義方法為StringUtil.encodeSQL,該數(shù)據(jù)處理系統(tǒng)判斷用戶登錄信息是否合法的拼接SQL指令(以java語言)的代碼為:
[0072]
【權(quán)利要求】
1.一種數(shù)據(jù)庫的數(shù)據(jù)處理方法,其特征在于,包括: 接收數(shù)據(jù)庫數(shù)據(jù)處理請求,根據(jù)所述數(shù)據(jù)庫數(shù)據(jù)處理請求獲取結(jié)構(gòu)化查詢語言SQL指令所需參數(shù); 對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),所述預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理; 根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),所述預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理,包括: 對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別; 對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞尾部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù);或者,對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞頭部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別,包括: 對所述SQL指令所需參數(shù)進 行SQL關(guān)鍵詞匹配,得到匹配后SQL關(guān)鍵詞; 根據(jù)SQL關(guān)鍵詞在SQL語句中的語法對匹配后SQL關(guān)鍵詞進行檢查,得到符合語法的SQL關(guān)鍵詞。
4.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于,所述根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理,包括: 根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
5.根據(jù)權(quán)利要求1至3任一項所述的方法,其特征在于,所述根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理,包括: 對所述預處理后SQL指令所需參數(shù)進行SQL轉(zhuǎn)義和預處理還原,得到還原后SQL指令所需參數(shù),所述預處理還原為刪除預處理時所拼接的私有萬國碼字符; 根據(jù)所述還原后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
6.一種數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng),其特征在于,包括: 接收單元,用于接收數(shù)據(jù)庫數(shù)據(jù)處理請求,根據(jù)所述數(shù)據(jù)庫數(shù)據(jù)處理請求獲取結(jié)構(gòu)化查詢語言SQL指令所需參數(shù); 第一處理單元,用于對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別和預處理,得到預處理后SQL指令所需參數(shù),所述預處理包括破壞SQL關(guān)鍵詞在SQL語句中的語法含義的處理; 第二處理單元,用于根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并根據(jù)所述SQL指令進行數(shù)據(jù)庫的數(shù)據(jù)處理。
7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng),其特征在于,所述第一處理單元包括識別子單元和預處理子單元; 識別子單元,用于對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞識別;預處理子單元,用于對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞尾部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù);或者,對識別出的SQL關(guān)鍵詞進行SQL關(guān)鍵詞頭部拼接私有萬國碼字符的替換處理,得到預處理后SQL指令所需參數(shù)。
8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng),其特征在于, 所述識別子單元,具體用于對所述SQL指令所需參數(shù)進行SQL關(guān)鍵詞匹配,得到匹配后SQL關(guān)鍵詞,根據(jù)SQL關(guān)鍵詞在SQL語句中的語法對匹配后SQL關(guān)鍵詞進行檢查,得到符合語法的SQL關(guān)鍵詞。
9.根據(jù)權(quán)利要求6至8任一項所述的數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng),其特征在于, 第二處理單元,具體用于根據(jù)所述預處理后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù)處理。
10.根據(jù)權(quán)利要求6至8任一項所述的數(shù)據(jù)庫的數(shù)據(jù)處理系統(tǒng),其特征在于, 第二處理單元,具體用于對所述預處理后SQL指令所需參數(shù)進行SQL轉(zhuǎn)義和預處理還原,得到還原后SQL指令所需參數(shù),所述預處理還原為刪除預處理時所拼接的私有萬國碼字符;根據(jù)所述還原后SQL指令所需參數(shù)生成SQL指令,并運行生成的SQL指令,以進行數(shù)據(jù)庫的數(shù)據(jù) 處理。
【文檔編號】G06F17/30GK103902606SQ201210583455
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權(quán)日:2012年12月28日
【發(fā)明者】李宗波 申請人:騰訊科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1