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

主站蜘蛛池模板: 日本午夜精品一本在线观看| 手机在线免费毛片| 在线观看国产精美视频| 精品一区二区久久久久网站| 蜜桃视频一区二区| 国产成人一区免费观看| 午夜一区二区三区| 日韩av资源在线| 亚洲精品动漫在线观看| 亚洲男人天堂网址| 日本一区二区三区精品视频| 精品一区二区三区波多野结衣| 99久久婷婷国产综合精| yjizz视频最新网站在线| 亚洲永久色| 亚洲成人网在线观看| 国产成人精品男人的天堂| 国产精品视频导航| 18禁高潮出水呻吟娇喘蜜芽| 欧美日韩专区| 国产偷国产偷在线高清| 视频二区中文无码| 婷婷综合色| 青草91视频免费观看| 日韩精品免费一线在线观看| 亚洲美女一区二区三区| 99手机在线视频| 免费a在线观看播放| 久久先锋资源| 九九这里只有精品视频| 国产精品尤物在线| 青青草原国产免费av观看| 人妻免费无码不卡视频| 国产精品视频a| 亚洲无码免费黄色网址| 免费毛片在线| 国产成人做受免费视频| 91黄视频在线观看| 国产精品免费久久久久影院无码| 超碰色了色| 国产网站免费看| 福利片91| 色视频久久| 日a本亚洲中文在线观看| 在线亚洲精品福利网址导航| 久久人体视频| 在线免费亚洲无码视频| 伊人久久大线影院首页| 91久久偷偷做嫩草影院电| 国产Av无码精品色午夜| 正在播放久久| 99re视频在线| 日本人妻丰满熟妇区| 国产精品永久在线| 日韩无码真实干出血视频| 成年人视频一区二区| 黑人巨大精品欧美一区二区区| 22sihu国产精品视频影视资讯| 精品国产香蕉伊思人在线| 国产一级妓女av网站| www中文字幕在线观看| 欧美有码在线| 毛片基地视频| 亚洲熟女中文字幕男人总站| 97一区二区在线播放| 免费黄色国产视频| 男女性午夜福利网站| 成年人国产网站| 国产女人在线视频| 19国产精品麻豆免费观看| 高清无码一本到东京热| 五月天丁香婷婷综合久久| 激情乱人伦| а∨天堂一区中文字幕| 久久人午夜亚洲精品无码区| 久久77777| 精品日韩亚洲欧美高清a| 草逼视频国产| 久久精品这里只有国产中文精品| 久久a毛片| 亚洲午夜福利在线| 国产女人18毛片水真多1|