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年出生,工學學士,網絡工程師,工作單位:哈爾濱鐵道職業技術學院,主要研究方向:計算機科學與應用。

主站蜘蛛池模板: 欧美区国产区| 无码中文AⅤ在线观看| 欧美国产日产一区二区| 精品五夜婷香蕉国产线看观看| 国产一区二区三区在线观看视频 | 日本黄色不卡视频| 国产成人在线无码免费视频| 国产欧美网站| 成人午夜天| 国产剧情无码视频在线观看| 国产黄网永久免费| 国产精品永久免费嫩草研究院| 久久久久九九精品影院| 在线精品亚洲一区二区古装| 九色视频一区| 成人久久18免费网站| 97国产精品视频人人做人人爱| 久久黄色视频影| 尤物成AV人片在线观看| 91麻豆国产精品91久久久| 精品一区二区久久久久网站| 欧美综合一区二区三区| 免费黄色国产视频| 有专无码视频| 一本综合久久| 国产网站在线看| 国产精品免费久久久久影院无码| 国产美女在线免费观看| 欧美日韩中文国产| 国产久草视频| 日韩成人高清无码| 国产在线精彩视频二区| 国产真实乱子伦视频播放| 欧美日本激情| 又爽又大又黄a级毛片在线视频| 国产成年女人特黄特色大片免费| 国产av色站网站| 手机在线看片不卡中文字幕| 高清无码手机在线观看| 国产成人亚洲毛片| 精品人妻系列无码专区久久| 亚洲区视频在线观看| 成人综合在线观看| 97青青青国产在线播放| 国产精品刺激对白在线| 日本妇乱子伦视频| 国产成人无码综合亚洲日韩不卡| 成年人国产视频| 国产成人精品一区二区三在线观看| 久久久久无码精品| 久久久久久尹人网香蕉 | 亚洲AⅤ综合在线欧美一区| 国产自在线拍| 日韩在线观看网站| 九九视频免费看| 精品撒尿视频一区二区三区| 成人午夜久久| 国产乱人免费视频| 欧美日韩亚洲国产主播第一区| 四虎成人在线视频| 成年人午夜免费视频| 亚洲最大在线观看| 有专无码视频| 亚洲综合狠狠| 国产一级片网址| 欧美一区福利| 亚洲最新网址| 成人精品免费视频| 国产成人无码AV在线播放动漫| 亚洲天堂视频网| 亚洲侵犯无码网址在线观看| 国产真实乱子伦精品视手机观看 | 中文无码影院| 九九久久精品国产av片囯产区| 免费看一级毛片波多结衣| 久久视精品| 91久久青青草原精品国产| 香蕉国产精品视频| 99re热精品视频国产免费| 狠狠v日韩v欧美v| 亚洲成在线观看| 国产国拍精品视频免费看|