999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL注入攻擊與防護策略分析

2017-03-18 19:31:29鄭智釗
科學與財富 2017年4期

摘 要:針對WEB應用安全問題中最常見到的SQL注入攻擊,本文對攻擊的原理、手段和過程做了介紹和剖析,并針對SQL注入的特點指出了對于提高網站安全的策略。

關鍵詞:SQL注入;WEB安全;網站防護措施

引言

近年來,WEB應用成為了人們日常生活、工作、學習中必不可少的工具和信息來源,隨之而來的是信息安全問題層出不窮。2016年國內某專業信息安全平臺被發現存在SQL注入漏洞,導致大量用戶信息被泄露。由于絕大多數當今網站都是通過數據庫存儲用戶信息和網站數據,這導致SQL注入攻擊成為網站最常見到的安全風險來源之一。

1.SQL注入攻擊原理

SQL注入攻擊是通過操作輸入來修改SQL語句,用以達到執行代碼對WEB服務器進行攻擊的方法。簡單的說就是在post/get web表單、輸入域名或頁面請求的查詢字符串中插入SQL命令,最終使web服務器執行惡意命令的過程。可以通過一個例子簡單說明SQL注入攻擊。

假設某網站頁面顯示時URL 為http://www.example.com?test=123,此時URL實際向服務器傳遞了值為123的變量test,這表明當前頁面是對數據庫進行動態查詢的結果。由此,我們可以在URL中插入惡意的SQL語句并進行執行。另外,在網站開發過程中,開發人員使用動態字符串構造SQL語句,用來創建所需的應用,這種情況下SQL語句在程序的執行過程中被動態的構造使用,可以根據不同的條件產生不同的SQL語句,比如需要根據不同的要求來查詢數據庫中的字段。這樣的開發過程其實為SQL注入攻擊留下了很多的可乘之機。

2.SQL注入攻擊常見方法和過程

2.1尋找SQL注入漏洞

確定網站存在SQL注入漏洞的途徑一般有兩種,第一種是可以利用網站的錯誤提示,如果網站開啟了錯誤顯示,攻擊者就可以通過在輸入參數的地方反復調整發送的參數,通過頁面出現的錯誤信息,推測出網站使用的數據庫和開發語言信息。如果網站管理員關閉了錯誤信息提示,攻擊者可以采用盲注的技巧來進行反復嘗試。盲注是利用數據庫查詢的輸入審查漏洞從數據庫提取信息或提取與數據庫查詢相關的信息的技術。如在URL 中輸入login.php?username=admin and 1=1和login.php?username=admin and 1=2,如果前者能正常返回信息,而后者不能,基本上就可以認定網站存在SQL注入漏洞。這是因為1=2的表達式不成立,所以即使username傳入了正確的數值也是無法通過,因此可以判讀出該網站可以通過usernamer參數進行注入。

2.2判斷數據庫

獲得網站的數據庫類型是SQL注入提取重要數據的前提條件之一,可以通過常見的技術架構進行判斷,如aps.net常和SQL Server一起使用,而PHP往往使用MySQL,JSP會配合Oracle或MySLQ。而WEB服務環境也可以提供線索,如運行IIS的服務環境往往采用SQL Server數據庫,使用TOMCAT的更大的可能是MySQL或Oracle。另外,還可以通過詳細的錯誤信息判斷數據庫的版本,比如添加單引號作為注入參數,根據數據庫產生的語法錯誤信息,就可以判斷出數據庫的種類。

2.3攻擊數據庫系統

攻擊數據庫的目的是為了獲得數據庫中有價值的數據信息,進而可以為控制整個WEB系統做鋪墊。獲得數據庫中數據可以遵循層次化的方法,首先提取數據庫的名稱,然后提取表、列,最后才是數據本身。通常,可以通過訪問專門保存表示各種數據庫結構的表,比如MySQL中,這些信息保存在information_schema數據庫中。在該數據庫中的schemata表中存儲著數據庫名,tables表中存儲著表名,columns表中存儲著字段名,通過以上的信息,再獲得數據庫表中的內容就輕而易舉了。

2.4控制WEB系統

在獲得數據庫中數據信息后,可以通過對具有管理權限的賬號信息入手,通過登錄帳號,使用網站后臺上傳功能上傳木馬程序,或添加惡意代碼,最終甚至可以獲得服務器的完全控制權限。

3.SQL注入攻擊防護策略

SQL注入漏洞的產生,都是因為系統要接受來自客戶端輸入的變量或者URL傳遞的參數,為此,開發者一定要遵循“外部數據不可信”原則,對于用戶輸入的內容或傳遞的參數,要時刻保持警惕。因此對于SQL注入的防護策略通常要確保系統傳遞的變量符合開發者的設計要求。

3.1變量檢測

對于數據庫中有固定數據類型的變量,在SQL語句執行前,應該對變量的類型進行嚴格的檢查,確保變量是開發者預想的。比如系統中存在名為id的數字字段,那么系統在執行SQL語句前確保變量id的類型是int型的。

3.2過濾特殊符號

當發生SQL注入攻擊時,攻擊者在提交的SQL語句會包含一些特殊的字符或字符串,如單引號、雙引號、反斜杠、NULL等。這樣,可以通過使用數據庫系統自帶函數或編寫相關驗證程序對用戶輸入的這類符號進行轉義或者過濾,從而達到限制SQL注入的目的。

3.3合理使用預編譯

預編譯是吧一些格式固定的SQL 編譯后,存放在內存池中,當需要執行相同SQL語句時,就可以直接執行以及預編譯的語句,不同的數據庫系統都有預編譯機制。因此,在當遇到類似login.php?username=admin and 1=1的注入攻擊時,預編譯SQL語句 WHERE username=?可以阻止攻擊的成功。

3.4對關鍵數據信息加密

對于數據庫中諸如賬號密碼的信息應該避免使用明文存儲,可以使用AES、RSA、MD5等算法對數據進行加密存儲,這樣即使系統被SQL注入成功,攻擊者也無法輕易獲得關鍵數據信息的內容。

4.結語

SQL注入一直是網站重要的安全風險來源,作為網站的開發者和運維人員應該意識到SQL注入攻擊是一種綜合的攻擊手段。為了避免SQL注入帶來的影響,開發者和運維人員應該從網站設計入手,并對服務器、數據庫管理等多方面加以規范,確保網站可以安全可靠的運行。

參考文獻:

[1]鄭成興.網絡入侵防范的理論與實踐[m].機械工業出版社,2012

[2]黃健.計算機信息安全技術及防護[J].信息安全與技術,2012,4.

[3]陰國富.基于SQL注人的安全防范檢測技術研究[J].河南科學,2009,27

[4]李虎軍.淺談網站SQL注入攻擊防護策略研究[J].電腦知識與技術,2016,3

作者簡介:

鄭智釗,男,1983年出生,工學學士,網絡工程師,工作單位:哈爾濱鐵道職業技術學院,主要研究方向:計算機科學與應用。

主站蜘蛛池模板: 亚洲最猛黑人xxxx黑人猛交| 亚洲无码视频一区二区三区| 亚洲成人精品| 亚洲欧洲自拍拍偷午夜色| 免费AV在线播放观看18禁强制| 极品av一区二区| 亚洲精选无码久久久| 呦系列视频一区二区三区| 亚洲VA中文字幕| 国内精品视频区在线2021| 99久久精品国产综合婷婷| 色精品视频| 亚洲经典在线中文字幕| 香蕉网久久| 国产亚洲精品自在久久不卡| 亚洲天堂伊人| 就去色综合| 日韩a级毛片| 亚洲av色吊丝无码| 国产成人啪视频一区二区三区| 久久国产黑丝袜视频| 97视频免费看| 日韩经典精品无码一区二区| 刘亦菲一区二区在线观看| 国产在线拍偷自揄观看视频网站| 国产香蕉在线| 亚洲欧美国产高清va在线播放| 国产午夜看片| 美女无遮挡免费网站| 天堂在线视频精品| 国产乱人乱偷精品视频a人人澡| 熟女日韩精品2区| 午夜a级毛片| 国产不卡网| 性色生活片在线观看| 欧洲免费精品视频在线| 波多野结衣无码中文字幕在线观看一区二区 | 欧美午夜小视频| 黄色一级视频欧美| 亚洲综合色婷婷| 九九热精品视频在线| 欧美α片免费观看| 国产青青操| 天天激情综合| 欧美日韩另类国产| 国产亚洲精品自在久久不卡 | 精品国产美女福到在线直播| 大陆精大陆国产国语精品1024| 欧美成人亚洲综合精品欧美激情| 青青草国产在线视频| 在线观看亚洲天堂| 啊嗯不日本网站| 国产福利拍拍拍| 日本免费一区视频| 好久久免费视频高清| 2020国产精品视频| 色综合日本| 小13箩利洗澡无码视频免费网站| 韩国v欧美v亚洲v日本v| 欧美精品影院| 亚洲人成网7777777国产| 尤物亚洲最大AV无码网站| 国产成人精品一区二区秒拍1o| 久久久精品无码一区二区三区| 久久婷婷综合色一区二区| 亚洲天堂精品在线观看| 青青草综合网| 97免费在线观看视频| 亚洲欧洲免费视频| 亚洲国产无码有码| 激情综合激情| 亚洲成年网站在线观看| 亚洲av日韩av制服丝袜| 亚洲精品人成网线在线| 一级黄色欧美| 亚洲天天更新| 亚洲无线一二三四区男男| 日本高清成本人视频一区| 日韩欧美中文字幕一本| 午夜福利网址| 国产成人综合在线观看| 99ri精品视频在线观看播放|