亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        檔案管理網(wǎng)站的SQL注入攻擊與防范

        2016-06-18 16:15:40李建榮何保榮秦奕
        檔案管理 2016年3期
        關(guān)鍵詞:數(shù)據(jù)庫

        李建榮++何保榮++秦奕

        摘 要:本文通過實例分析了SQL注入攻擊原理,根據(jù)本人平時的工作總結(jié),系統(tǒng)地闡述了如何防范SQL注入攻擊、SQL 注入攻擊檢測方法和SQL注入攻擊后的補救措施。希望對檔案管理網(wǎng)站開發(fā)人員和檔案管理網(wǎng)站管理人員有一定的啟發(fā),提高檔案管理網(wǎng)站的安全性。

        關(guān)鍵詞:SQL;SQL注入;SQL注入攻擊;數(shù)據(jù)庫;檔案管理網(wǎng)站

        隨著計算機和網(wǎng)絡(luò)技術(shù)的日益發(fā)展,網(wǎng)絡(luò)化、數(shù)字化成為檔案管理發(fā)展的重要方向,檔案管理網(wǎng)站建設(shè)成為其中很重要的組成部分。在網(wǎng)站建設(shè)過程中,由于網(wǎng)站開發(fā)人員的能力和管理經(jīng)驗參差不齊,部分網(wǎng)站開發(fā)人員在編寫代碼的時候,沒有對用戶輸入數(shù)據(jù)的合法性進行嚴格判斷和過濾,使網(wǎng)站存在不同的安全隱患,容易遭受不同程度的SQL注入攻擊[1]。目前檔案管理網(wǎng)絡(luò)安全系統(tǒng)主要以防火墻為主,而防火墻只是對訪問對象進行認證,而對于網(wǎng)站本身存在的軟件問題,入侵者依然可以在遵守防火墻訪問規(guī)則的前提下實施攻擊,防火墻并不能有效解決SQL注入攻擊問題。所以研究檔案管理網(wǎng)站的SQL注入攻擊與防范措施是擺在檔案管理網(wǎng)站開發(fā)人員和網(wǎng)站管理人員面前的一個急需探討的重要課題。

        1 SQL注入攻擊概述

        1.1 SQL注入攻擊概念。SQL(Structured Query Language)是一種用來和數(shù)據(jù)庫交互的文本語言,我們也把它叫做結(jié)構(gòu)化查詢語言,使用它可以對數(shù)據(jù)庫進行管理。

        SQL注入,就是在客戶端通過把SQL命令插入到Web 表單遞交或頁面請求的查詢字符串,最終達到欺騙服務(wù)器執(zhí)行惡意的SQL命令,即通過遞交參數(shù)構(gòu)造巧妙的SQL語句,從而成功獲取想要的數(shù)據(jù)[2]。一旦SQL注入成功,就形成了SQL注入攻擊,輕則導(dǎo)致重要數(shù)據(jù)的泄露或篡改,重則導(dǎo)致整個服務(wù)器受他人控制,一旦服務(wù)器被掛木馬或者病毒,就會造成整個服務(wù)器癱瘓。

        由于檔案管理網(wǎng)站要對大量數(shù)據(jù)進行管理,因此離不開數(shù)據(jù)庫,而目前常用的數(shù)據(jù)庫有Oracle、Sybase、DB2、MS SQL Server 等,這些數(shù)據(jù)庫均是基于SQL 語句的標(biāo)準數(shù)據(jù)庫,所以SQL注入攻擊具有廣泛性、技術(shù)難度不高、危害性大等特點。

        1.2 SQL注入攻擊的原理。SQL注入攻擊原理就是利用某些數(shù)據(jù)庫的外部接口把用戶精心編寫的、具有特定含義的數(shù)據(jù)合理地插入到實際的數(shù)據(jù)庫操作語言當(dāng)中,從而達到入侵數(shù)據(jù)庫的目的[3]。產(chǎn)生SQL注入攻擊的主要原因是程序?qū)τ脩糨斎氲臄?shù)據(jù)沒有進行細致的過濾,導(dǎo)致非法數(shù)據(jù)的導(dǎo)入。

        登錄在網(wǎng)站設(shè)計中是很重要的一個部分,下面以登錄驗證中的模塊為例,來說明SQL注入攻擊的具體實現(xiàn)方法。在Web應(yīng)用程序的登錄驗證程序中,一般有用戶名(username)和密碼(password)兩個參數(shù),程序會通過用戶所提交輸入的用戶名和密碼來執(zhí)行相關(guān)的授權(quán)操作。其原理是通過查找user表中的用戶名(username)和密碼(password)的結(jié)果來進行授權(quán)訪問,典型的SQL查詢語句為:

        Select*from users where username=‘a(chǎn)dminand password=‘smith

        如果分別給username和password賦值“‘a(chǎn)dmin or 1=1- - ”和“123”,那么,SQL腳本解釋器中的上述語句就會變?yōu)椋?/p>

        select*from users where username=‘a(chǎn)dminor 1=1- - and password=‘123

        該語句中“- -”表示注釋語句,即“- -”后面所有的內(nèi)容為注釋內(nèi)容,系統(tǒng)不再執(zhí)行。Where條件部分由邏輯或運算連接的兩個判斷條件,只要一個條件成立,整個SQL語句就會成功執(zhí)行,而1=1在邏輯判斷上是恒成立的,所以在該SQL語句中,不管用戶名和密碼對不對,該語句都可以正常執(zhí)行。至此,入侵者惡意構(gòu)造的SQL語句就得到了正確執(zhí)行,實現(xiàn)一次SQL注入攻擊。

        同樣道理,如果程序沒有實施類型強制,通過在輸入數(shù)據(jù)時構(gòu)造SQL語句,還可以刪除數(shù)據(jù)庫中的數(shù)據(jù)表,造成大量數(shù)據(jù)丟失。例如:

        Update subject Set score=? Where name=‘xiaoming

        如果成績的值被惡意輸入為:99;Drop Table users#

        這時該SQL語句就會變成下面的語句:

        Update subject Set score=100;Drop Table users #where name=‘xiaoming

        系統(tǒng)一旦執(zhí)行該語句,其中的SQL語句Drop Table users,就會將“users”表從數(shù)據(jù)庫中刪除。

        2 如何防范SQL注入攻擊

        SQL注入攻擊防范方法目前已經(jīng)有很多,總結(jié)起來有以下幾個方面:

        2.1 加強對用戶輸入的驗證。當(dāng)服務(wù)器接受用戶端提交的數(shù)據(jù)時,要先對用戶端數(shù)據(jù)的合法性進行嚴格檢查,使惡意數(shù)據(jù)不能直接被嵌入到SQL語句中。

        使用恰當(dāng)?shù)尿炞C對用戶端輸入的數(shù)據(jù)進行檢查,最大限度地保證符合定義的標(biāo)準過程,是否滿足預(yù)設(shè)定的類型、長度或大小、數(shù)值范圍和格式等。在SQLServer數(shù)據(jù)庫中,有比較多的用戶輸入內(nèi)容驗證工具,可以幫助管理員來對付SQL注入式攻擊。

        利用存儲過程可以實現(xiàn)對用戶輸入變量的過濾,拒絕接受一些特殊的符號,如上面例子惡意刪除數(shù)據(jù)表那段代碼中,只要存儲過程把那個分號過濾掉,這個惡意SQL代碼就沒法執(zhí)行了。所以可以直接把這些類似的特殊符號過濾掉,即使在SQL語句中嵌入了惡意代碼,也不容易形成SQL注入攻擊。

        2.2 屏蔽系統(tǒng)出錯信息。一般對數(shù)據(jù)庫操作出現(xiàn)錯誤時,系統(tǒng)會提示錯誤提示信息。入侵者根據(jù)錯誤提示很容易得到有關(guān)數(shù)據(jù)庫的相關(guān)信息,從而進行惡意SQL注入攻擊。例如有以下錯誤信息:

        Microsoft OLEDBProviderforODBCDrivers(0x80040E07)[Microsoft][ODBC SQL Server Driver][SQL Server] 將nvarchar值“sonybb”轉(zhuǎn)換為數(shù)據(jù)類型為int時發(fā)生語法錯誤。

        根據(jù)這個出錯信息,有點數(shù)據(jù)庫常識的人就可以獲得以下信息:該網(wǎng)站使用SQL server數(shù)據(jù)庫,用ODBC 連接,連接賬號名為sonybb。獲得這些信息對入侵者下一步的SQL注入提供了重要數(shù)據(jù),方便他們惡意構(gòu)造SQL語句,順利實現(xiàn)SQL注入式攻擊。

        2.3 SQL 語句參數(shù)化。SQL語句參數(shù)化是指用占位符或綁定變量來向SQL查詢提供參數(shù)的方法,是一種更加安全的動態(tài)字符串構(gòu)造方法,而不是把用戶輸入的變量直接嵌入到SQL語句[4]。因為參數(shù)化查詢可以重用執(zhí)行計劃,SQL語句所要表達的語義不會改變,參數(shù)化方法可以杜絕大部分的SQL注入攻擊。然而,SQL語句參數(shù)化存在一定的缺點,它只能參數(shù)化數(shù)值,不能參數(shù)化標(biāo)識符或關(guān)鍵字。

        2.4 加強管理員登錄頁面所在路徑的強壯度。由于管理員具備對整個網(wǎng)站的管理權(quán)限,管理員一般通過后臺成功登錄后就可以對整個網(wǎng)站進行管理。因此入侵者進行SQL注入很重要的一步就是猜測管理員的后臺入口。一旦入侵者破解了管理員的后臺入口,就可以行使管理員的一切權(quán)力,對整個網(wǎng)站進行掌控,很輕松地管理數(shù)據(jù)、修改數(shù)據(jù)、刪除數(shù)據(jù)。因此,要加強系統(tǒng)管理后臺登錄目錄的保密工作,不要把登錄頁面放在admin、login等常用目錄名下。

        2.5 對重要數(shù)據(jù)信息采用非常規(guī)加密方法。目前在程序中對口令等重要信息加密都是采用md5 函數(shù)加密方法,即密文=md5(明文),此處推薦在原來md5 函數(shù)加密的基礎(chǔ)上再增加一些非常規(guī)的加密方法,即在md5加密的基礎(chǔ)上再附帶一些沒有規(guī)律的數(shù)據(jù),如密文md5(md5( 明文) +654321) ,最終增加重要數(shù)據(jù)的保密性。

        2.6 限制管理員登錄方式。采取內(nèi)網(wǎng)認證碼方式和設(shè)定專屬IP 登錄后臺系統(tǒng)措施,限制管理員登錄方式,即使入侵者進行了 SQL注入攻擊,獲得了管理員的登錄方式,只要使用電腦的IP地址不對,同樣也無法進入后臺管理頁面。

        3 SQL 注入攻擊檢測方法

        一旦網(wǎng)站出現(xiàn)問題,需要網(wǎng)站管理人員經(jīng)常對網(wǎng)站的相關(guān)方面進行查看,除了查毒殺毒以外,更重要的要觀察網(wǎng)站是否受到了SQL注入攻擊,然后才可以及時采取相應(yīng)的措施,使網(wǎng)站損失達到最小。網(wǎng)站遭受SQL注入攻擊,一般都會留下一定的“痕跡”。SQL注入攻擊檢測方法主要有數(shù)據(jù)庫檢查、IIS日志檢查和其他的一些相關(guān)信息判斷。

        3.1 數(shù)據(jù)庫檢查。如果使用SQL注入攻擊軟件工具Domain、NBSI 和HDSI等進行攻擊,一般都會在數(shù)據(jù)庫中生成一些臨時表。通過查看數(shù)據(jù)庫中新建表的結(jié)構(gòu)和內(nèi)容是否有異常,可以判斷是否曾經(jīng)發(fā)生過SQL注入攻擊。

        3.2 IIS日志檢查。在Web服務(wù)器中如果啟用了日志記錄,則IIS日志會記錄訪問者的IP地址、訪問文件等信息,SQL注入攻擊往往會大量訪問某個存在SQL注入點的動態(tài)網(wǎng)頁,日志文件數(shù)量會急劇增加, 通過查看日志文件的大小以及日志文件中的內(nèi)容, 可以判斷是否發(fā)生過SQL注入攻擊。

        3.3 其他相關(guān)信息判斷。SQL注入攻擊成功后,入侵者往往會添加用戶、開放相關(guān)的遠程終端服務(wù)以及安裝木馬等,可以通過查看系統(tǒng)管理員賬號、遠程終端服務(wù)器開啟情況、系統(tǒng)最近日期產(chǎn)生的一些文件等信息來判斷是否發(fā)生過入侵。

        4 結(jié)束語

        防范SQL注入攻擊是保證檔案管理網(wǎng)站安全的一個重點。本文通過實例分析SQL注入攻擊原理,根據(jù)本人平時的工作總結(jié),系統(tǒng)地闡述了如何防范SQL注入攻擊、SQL 注入攻擊檢測方法和SQL注入攻擊后的補救方法,希望對檔案管理網(wǎng)站開發(fā)人員和檔案管理網(wǎng)站管理人員有一定的啟發(fā)。由于SQL注入攻擊的種類繁多,靈活多變,很難用一種固定的方法全部解決SQL注入問題,如何更加有效地防范更高級別的SQL注入攻擊則是以后有待解決的問題。

        參考文獻:

        [1]王云.Web 項目中的SQL 注入問題研究與防范方法[J].計算機工程與設(shè)計,2010.

        [2]彭賡.基于改進網(wǎng)絡(luò)爬蟲技術(shù)的SQL 注入漏洞檢測[J].計算機應(yīng)用研究,2010.

        [3]高洪濤. SQL注入攻擊途徑及策略分析[J]. 網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2011(3).

        [4] Justin Clarke .SQL注入攻擊與防御[M] .北京:清華大學(xué)出版社,2010(6).

        作者單位:李建榮,何保榮:河南牧業(yè)經(jīng)濟學(xué)院軟件學(xué)院;

        秦奕:武漢音樂學(xué)院

        來稿日期:2016-02-17

        猜你喜歡
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        財經(jīng)(2017年15期)2017-07-03 22:40:49
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        數(shù)據(jù)庫
        財經(jīng)(2010年20期)2010-10-19 01:48:32
        无码国产精品一区二区免费97| 国产精品 无码专区| 欧美大成色www永久网站婷| 亚洲综合色成在线播放| 国产一区二区欧美丝袜| 高清不卡av在线播放| 激情内射人妻1区2区3区| a级国产乱理伦片在线播放| 午夜a福利| 亚洲国产精品久久性色av| 久久精品国产99国产精品澳门| 一二三四视频社区在线| 91精品国产免费青青碰在线观看| 亚洲男人的天堂色偷偷| 婷婷四虎东京热无码群交双飞视频| 三年片免费观看大全国语| 男性一插就想射是因为啥| 凹凸世界视频a一二三| 亚洲国产一二三精品无码| 色综合无码av网站| 无码熟妇人妻av在线c0930| 少妇高潮久久蜜柚av| а天堂中文最新一区二区三区| 亚洲V日韩V精品v无码专区小说 | 久久精品国产熟女亚洲| 日本人与黑人做爰视频网站 | 亚洲高清美女久久av| 久久国产黄色片太色帅| 亚洲精品无码久久久久秋霞| 国产熟女精品一区二区三区| 国产人妖伦理视频在线观看| 人妻少妇无码精品视频区 | 久久国产亚洲精品一区二区三区| 少妇人妻综合久久中文字幕| 五月天综合在线| 一区二区三区视频偷拍| 久久久亚洲av波多野结衣| 欧美成人看片黄a免费看| 黄色av三级在线免费观看| 漂亮人妻被强了完整版| 久久久久亚洲精品无码网址色欲|