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

SQL注入攻擊與防范研究

2014-12-31 00:00:00鄭國旺
消費電子·下半月 2014年11期

摘 要:網站的安全一直是管理員最為關注的問題,SQL注入是目前比較常見的針對網站數據庫的一種攻擊方式。本文對SQL注入攻擊的原理和種類以及如何防范進行了分析研究。

關鍵詞:SQL注入;攻擊;防范;數據庫

中圖分類號:TP393.08 文獻標識碼:A 文章編號:1674-7712 (2014) 22-0000-01

SQL注入(SQL Injection)是目前比較常見的針對網站數據庫的一種攻擊方式,大多數網站所遭受的攻擊都是SQL注入攻擊。其中絕大部分的攻擊是可以避免的,不過由于人為疏忽,造成許多網站被攻擊,敏感信息被泄露,給網站及其用戶都造成了負面影響和損失。因此,有必要梳理一下SQL注入攻擊的原理和種類,以期于網站的管理人員和WEB程序設計人員有所幫助。

一、什么是SQL注入攻擊

1999年國外出現SQL注入,2002年后我國開始大量出現,目前沒有標準定義。簡單地說,SQL注入攻擊就是利用網站程序代碼漏洞,巧妙構造惡意SQL語句,欺騙數據庫服務器非法獲取網站后臺數據庫的訪問權限和數據的攻擊行為。

二、SQL注入攻擊的主要種類及原理

鑒于SQL注入攻擊的危害性,有必要清楚其攻擊原理和主要種類。

(一)未對用戶輸入進行過濾。若未對用戶輸入中的單引號、連字符和分號等特殊符號進行過濾,攻擊者就可以將惡意代碼注入到SQL語句中以修改其含義。例如:statement:=\"SELECT*FROM users WHERE name='\"+userName+\"';\"。

該語句的編寫目的是從用戶表中查詢出一特定用戶信息,但若被惡意改裝,其功能可能就不是程序員所期望的了。假如攻擊者在輸入用戶變量userName時,輸入以下內容:a';DROP TABLE users; SELECT*FROM data WHERE name LIKE'%。

SQL語句就變成了:

SELECT*FROM users WHERE name='a';DROP TABLE users;SELECT * FROM data WHERE name LIKE'%';

這將會導致users表被刪除,并從data表中查詢出所有數據,實際上就是泄露了每一位用戶的信息。

(二)未對用戶輸入進行檢查驗證。若程序沒有對用戶輸入的合法性(如數據類型、長度、格式和范圍等)進行檢查驗證,也極易發生注入攻擊。例如:

statement:=\"SELECT*FROM data WHERE id=\"+a_variable+\";\"

程序員希望a_variable是一個與id字段有關的數字,但假如攻擊者在輸入變量a_variable時,輸入:

1;DROP TABLE users

則SQL語句就變成了:SELECT*FROM data WHERE id=1;DROP TABLE users;

同樣會將users表從數據庫中刪除。

三、SQL注入攻擊的防范

(一)對用戶輸入進行過濾。對于動態構造的SQL查詢,要防SQL注入,用戶的輸入就絕對不能直接被嵌入到SQL語句中,必須對輸入中的單引號、連字符和分號等特殊符號進行過濾,防止攻擊者篡改SQL語句。也可利用存儲過程實現對用戶輸入的過濾,拒絕一些特殊符號。

(二)使用參數化語句。使用參數來傳遞用戶輸入的內容而不是將用戶輸入直接嵌入到語句中,可防止攻擊者利用單引號和連字符實施攻擊。SQL Server數據庫提供的Parameters集合會將用戶輸入的內容視為普通的字符而不是可執行代碼,即使用戶輸入的內容中含有可執行代碼,數據庫也會濾掉。

(三)加強對用戶輸入的檢查驗證。通過檢查數據類型、長度、格式和范圍來驗證用戶輸入的合法性,確信輸入的內容只包含合法的數據,這是防止SQL注入攻擊的常見并且行之有效的方法。檢查用戶輸入,應當在客戶端和服務器端都執行。之所以要執行服務器端驗證,是為了彌補客戶端驗證機制脆弱的安全性。在客戶端,攻擊者完全有可能獲得網頁的源代碼,修改驗證合法性的腳本(或者直接刪除腳本),然后將非法內容通過修改后的表單提交給服務器。因此,要保證驗證操作確實已經執行,唯一的辦法就是在服務器端也執行驗證。

(四)使用專業的漏洞掃描工具。使用專業的漏洞掃描工具,可以幫助管理員發現可能被SQL注入攻擊的漏洞,并提醒管理員采取積極的措施來預防SQL注入式攻擊。

(五)嚴格區分普通用戶與系統管理員用戶的權限。在權限設計中,隔離不同帳戶可執行的操作,即用不同的用戶執行查詢、插入、更新、刪除操作。對于用來執行查詢的普通用戶,限制其數據庫對象的建立、刪除等權限。這樣即使普通用戶在SQL語句中注入了的惡意代碼,由于權限限制,這些代碼也將無法被執行,因而也就防止了原本用于執行SELECT命令的地方卻被用于執行INSERT、UPDATE或DELETE命令。

(六)加密用戶登錄名稱和密碼。在數據庫中將用戶登錄名稱、密碼等數據加密保存。加密用戶輸入的數據,然后再將它與數據庫中保存的數據比較,這相當于對用戶輸入的數據進行了“消毒”,這樣用戶輸入的數據不再對數據庫有任何特殊的意義,從而也就防止了攻擊者注入SQL命令。

四、結束語

本文給出了SQL注入攻擊的基本概念,分析了SQL注入攻擊的基本原理和常見的攻擊方式,并提出了一些有針對性的防范措施,希望能對網站的管理人員和WEB程序設計人員提供一定的借鑒。

參考文獻:

[1]袁志.SQL注入的常見攻擊方法及其防范[J].電腦知識與技術,2010(23).

[2]梁玲.SQL注入攻擊與防范研究.電腦開發與應用[J].2009(12):68-71.

[作者簡介]鄭國旺(1974-),男,信息工程系副教授,工程師,電子商務師,軟件工程碩士,研究方向:電子商務和軟件工程。

主站蜘蛛池模板: 国产成人精品日本亚洲77美色| 亚洲无码精品在线播放| 97视频免费在线观看| 国产菊爆视频在线观看| 国产精品一区不卡| 国产精品久久久久久影院| 久久综合亚洲色一区二区三区| 国产在线一区二区视频| 国产va在线观看免费| 茄子视频毛片免费观看| 亚洲天堂日韩在线| 99久久精品无码专区免费| 国产区精品高清在线观看| 亚洲精品福利网站| 无码视频国产精品一区二区| 国产成人a在线观看视频| 国产电话自拍伊人| 91在线一9|永久视频在线| 中文字幕在线观看日本| 国产一区二区三区夜色 | 国产自在自线午夜精品视频| 亚洲成A人V欧美综合天堂| 美女一区二区在线观看| 91精品国产情侣高潮露脸| 日本高清有码人妻| 国产aaaaa一级毛片| 在线视频亚洲欧美| 国产精品微拍| 日韩欧美国产另类| 欧美第二区| 欧美一区二区三区国产精品| 亚洲最猛黑人xxxx黑人猛交| 亚洲国产精品日韩专区AV| 久久久久九九精品影院| 午夜高清国产拍精品| 亚洲人成网址| 国产精品三级av及在线观看| 亚洲天堂区| 2048国产精品原创综合在线| 狠狠五月天中文字幕| 中文字幕2区| 偷拍久久网| 精品一区二区三区水蜜桃| 国产在线观看成人91| 青青青视频91在线 | 国产精品久久久久久久久kt| 六月婷婷精品视频在线观看| 国产白浆在线| 精品午夜国产福利观看| 国产迷奸在线看| 久久国产亚洲欧美日韩精品| 中文字幕日韩久久综合影院| 22sihu国产精品视频影视资讯| 亚洲专区一区二区在线观看| 亚洲视屏在线观看| 91精品国产福利| 国产欧美成人不卡视频| 99热亚洲精品6码| 国产一区在线视频观看| 亚洲精品制服丝袜二区| 91福利一区二区三区| 无码精品国产VA在线观看DVD| 国产理论一区| 波多野结衣一区二区三区四区| 亚洲Av综合日韩精品久久久| 国产成人做受免费视频| 亚洲无码A视频在线| 毛片手机在线看| 国产福利免费视频| 国产成年女人特黄特色毛片免| 中文字幕久久波多野结衣| 欧美日韩一区二区三区四区在线观看| 国产欧美日韩91| 影音先锋亚洲无码| 国产欧美在线视频免费| 啪啪永久免费av| 免费高清a毛片| 凹凸国产分类在线观看| 亚洲欧洲日产国产无码AV| 国产免费黄| 日韩成人在线一区二区| 国产精选自拍|