?

針對SQL注入的研究及其預防對策

2017-07-24 00:43張季
消費導刊 2017年4期
關鍵詞:預防對策研究

張季

摘要:Web中數據庫的應用越來越廣泛,SQL的注入也成為了黑客攻擊數據庫比較常見的手段。文章對SQL注入攻擊的一些相關原理進行了簡要的說明。并對現階段SQL注入攻擊的特點進行了研究和剖析,然后在這個基礎之上提供了幾種對SQL進行預防的防護方法。并且對這些方法的使用情況進行了必要的說明

關鍵詞:SQL注入 研究 預防對策

隨著互聯網的發展,大量的web網站開始涌現,極大地方便了人們的信息獲取需求。與此同時,黑客針對網站的攻擊也屢屢出現,造成了或多或少的經濟損失現代社會,而近年來互聯網技術的發展迅猛,以因特網為基礎平臺的Web應用系統在計算機的各個領域都有了越來越廣泛的用途。譬如企業的辦公系統以及電子商務系統等等。這些系統絕大多數都是采用的HTTP的方式進行數據的傳遞,然后將這些數據相關組織的數據庫當中,這些數據對一些不法分子來說具有非常大的吸引力,這就給數據的安全性造成了很大的安全隱患,比較典型的就是SQL的注入。

一、SQL注入

從目前的情況來看,現在的Web應用程序在一般情況下采用的都是依靠數據庫為用戶進行寫、度數據的方法,但是,在另一方面,由于從事程序編程人員的水平參差不齊,絕大多數編程的工作者沒有在編寫程序的時候對用戶數據的合法性進行辨別,這就導致在應用程序的過程中出現了安全隱患。SQL注入,簡單的來說,就是不法分子利用高科技手段改變原來數據的查詢語句,并把這個命令提交給服務器,并在這個基礎之上執行惡意的SQL命令然后不法分子在依據數據返回的結果中獲取攻擊者想要得到的信息,進行下一步的不法活動。

(一)關于SQL的注入原理

眾所周知,SQL注入的目的就是對數據庫進行攻擊,然后在攻擊數據庫的基礎之上在攻擊其所在的服務器,而這種攻擊的主要方式就是不法分子將代碼在參數中進行植入,而這些參數會被植入SQL命令中加已執行。例如將惡意的代碼插入到字符串當中,然后在這個基礎之上將這些字符串保存在數據庫當中的數據表中,或者將其當作元數據,當被存儲的字符串植入到動態的SQL命令當中來的時候,這些惡意的代碼就會被執行。雖然數據庫的類型是多種多樣的,但是SQL注入攻擊的原理和基本過程確是基本上都一樣的。結合其他學者的相關研究,本文將SQL注入的類別分為用戶登錄類別以及其他類兩種類型。在用戶登錄的類別當中,不法分子可以繞過存在安全隱患的登錄框進行登錄,而在其他類別中,其則需要對攻擊的對象進行更深一步的分析,并對數據庫的類型有一定的了解,只有通過這樣的途徑,其才能實現SQL的注入,也只有在這個基礎之上才能毒數據庫進行攻擊。

我們都知道,SQL的注入對數據庫的危害是非常大的,攻擊者不僅可以利用已經存在的SQL漏洞對服務器進行攻擊,對數據庫的敏感信息進行盜竊、竊取,甚至還有的不法分子會對服務器的信息進行肆意的篡改和刪除,技術水平高的不法分子還有可能種植后門程序,這種行為導致的最嚴重的后果就是當不法分子一旦獲取該服務器的最高管理權限,其就可能實現整個操作系統的控制,有的甚至導致系統無法進行日常的運行甚至會導致整個系統的癱瘓。

二、關于SQL注入攻擊的防范措施

(一)參數化語句

由于數據庫所執行的多數都是由SQL查詢創建成的字符串,因此該構造方式極易導致應用系統受到SQL注入攻擊。一般情況下,在編程語言和數據庫訪問API時,可采用占位符或綁定變量的方法為SQL查詢提供必要參數,以此替代對用戶輸入進行操作。這種稱為參數化查詢的方法更加安全可靠,它能夠盡可能地避免應用中常見的SQL注入漏洞,并可在多數情況下代替現有的動態查詢,對一般數據庫來說其效率更高。參數化查詢語句能夠為數據庫提供預處理語句功能,從而優化查詢并進一步提高后續查詢性能

(二)輸入驗證

輸入驗證是一種功能強大的SQL注入控制手段。所謂輸入驗證,就是通過對應用程序的輸入數據進行驗證,從而保證其符合應用程序中已定義標準的過程。此方法既可以將參數限制成固定的某種類型,也可以通過使用正則表達式或業務邏輯進行輸入驗證。

(三)編碼輸出

除驗證輸入方法外,還應對不同模塊或部分應用間互相傳遞的內容進行編碼。在SQL語境中,對發送至數據庫的內容進行編碼或引用是必要的操作,這樣能夠保證內容被正確的處理。除此以外,當正在使用的數據未經過嚴格審查,或數據來自第三方時,還應對數據庫信息進行編碼。該方法適用于無法使用參數化查詢語句的情況,此時則需對發送至數據庫的數據進行編碼,但如果當數據庫查詢某個值沒有編碼時,該應用程序仍然易受到SQL注入的攻擊。

通過上述分析,我們可以發現SQL注入對數據庫的危害是非常大的,這也對現代社會的信息犯罪提供了一種新的犯罪手段,最大限度的減少SQL注入漏洞可以有效的對SQL的注入風險進行預防,正如上文提到的,我們一定要結合SQL注入的原理來探討SQL的預防方法,只有這樣做,其防御措施才能夠做到實時有效。從目前的情況來看,市面上已經出現了一些能夠自動監測SQL注入的工具和攻擊工具,但是這些都是最基本的東西,要想更進一步的對SQL注入進行更加有效的預防,還是有必要對SQL注入的原理進行更加深入的研究,然后在這個基礎之上采取正確、合理的應對措施,最好能做到防患于未然,只要做到這些,SQL的注入危害還是可以避免的。

猜你喜歡
預防對策研究
FMS與YBT相關性的實證研究
2020年國內翻譯研究述評
遼代千人邑研究述論
視錯覺在平面設計中的應用與研究
EMA伺服控制系統研究
新版C-NCAP側面碰撞假人損傷研究
私設“小金庫”引發的職務犯罪預防對策研究
浙江天臺縣森林防火現狀及預防對策
氣候變化對森林火災的影響及預防對策的探討
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合