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

檔案管理網站的SQL注入攻擊與防范

2016-06-18 16:15:40李建榮何保榮秦奕
檔案管理 2016年3期
關鍵詞:數據庫

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

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

關鍵詞:SQL;SQL注入;SQL注入攻擊;數據庫;檔案管理網站

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

1 SQL注入攻擊概述

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

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

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

1.2 SQL注入攻擊的原理。SQL注入攻擊原理就是利用某些數據庫的外部接口把用戶精心編寫的、具有特定含義的數據合理地插入到實際的數據庫操作語言當中,從而達到入侵數據庫的目的[3]。產生SQL注入攻擊的主要原因是程序對用戶輸入的數據沒有進行細致的過濾,導致非法數據的導入。

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

Select*from users where username=‘adminand password=‘smith

如果分別給username和password賦值“‘admin or 1=1- - ”和“123”,那么,SQL腳本解釋器中的上述語句就會變為:

select*from users where username=‘adminor 1=1- - and password=‘123

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

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

Update subject Set score=? Where name=‘xiaoming

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

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

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

系統一旦執行該語句,其中的SQL語句Drop Table users,就會將“users”表從數據庫中刪除。

2 如何防范SQL注入攻擊

SQL注入攻擊防范方法目前已經有很多,總結起來有以下幾個方面:

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

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

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

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

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

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

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

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

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

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

3 SQL 注入攻擊檢測方法

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

3.1 數據庫檢查。如果使用SQL注入攻擊軟件工具Domain、NBSI 和HDSI等進行攻擊,一般都會在數據庫中生成一些臨時表。通過查看數據庫中新建表的結構和內容是否有異常,可以判斷是否曾經發生過SQL注入攻擊。

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

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

4 結束語

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

參考文獻:

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

[2]彭賡.基于改進網絡爬蟲技術的SQL 注入漏洞檢測[J].計算機應用研究,2010.

[3]高洪濤. SQL注入攻擊途徑及策略分析[J]. 網絡安全技術與應用,2011(3).

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

作者單位:李建榮,何保榮:河南牧業經濟學院軟件學院;

秦奕:武漢音樂學院

來稿日期:2016-02-17

猜你喜歡
數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
兩種新的非確定數據庫上的Top-K查詢
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2015年3期)2015-06-09 17:41:31
數據庫
財經(2014年21期)2014-08-18 01:50:18
數據庫
財經(2014年6期)2014-03-12 08:28:19
數據庫
財經(2013年6期)2013-04-29 17:59:30
主站蜘蛛池模板: 为你提供最新久久精品久久综合| 在线播放真实国产乱子伦| 欧美精品影院| 亚洲人成网址| 毛片手机在线看| 国产欧美一区二区三区视频在线观看| 久久综合色视频| 欧美专区在线观看| 91精品视频在线播放| 国产成人免费观看在线视频| 欧美一区二区人人喊爽| 国产亚洲欧美日韩在线一区| 无码 在线 在线| 久久99精品国产麻豆宅宅| 人妻一本久道久久综合久久鬼色| 97精品久久久大香线焦| 日韩美毛片| 亚洲天堂伊人| 亚洲成人一区二区三区| 亚洲乱码在线播放| 免费看a毛片| 国产成人久久777777| 亚洲制服丝袜第一页| 免费观看无遮挡www的小视频| 国产又爽又黄无遮挡免费观看| 久久一本日韩精品中文字幕屁孩| AV天堂资源福利在线观看| 中文字幕欧美日韩| 免费激情网站| 在线永久免费观看的毛片| 欧美色伊人| 国产H片无码不卡在线视频| 欧日韩在线不卡视频| 国产精品lululu在线观看 | 国产av无码日韩av无码网站| 中文成人无码国产亚洲| 丁香六月综合网| 综合网天天| 在线网站18禁| 日本日韩欧美| 97国产成人无码精品久久久| 亚洲伊人久久精品影院| 国产成人精品综合| 欧美日韩国产在线播放| 亚洲综合经典在线一区二区| 亚洲色图欧美一区| 欧美α片免费观看| 国产美女一级毛片| 国产精品久久久久久久伊一| 亚洲狼网站狼狼鲁亚洲下载| 色综合五月| 白浆免费视频国产精品视频| 久久性妇女精品免费| 巨熟乳波霸若妻中文观看免费| 亚洲精品视频免费| 欧美日本在线观看| 欧美一区二区福利视频| 久久青草精品一区二区三区| 在线观看国产精品日本不卡网| 国产日韩丝袜一二三区| 91蜜芽尤物福利在线观看| 熟女日韩精品2区| 国产偷倩视频| 在线观看亚洲人成网站| 全免费a级毛片免费看不卡| 国产第一页第二页| 九色国产在线| 国产精品性| 无码中文字幕乱码免费2| 51国产偷自视频区视频手机观看 | 国产福利观看| 九九九久久国产精品| 尤物视频一区| 777午夜精品电影免费看| 欧美一级高清视频在线播放| 日本一本正道综合久久dvd| 亚洲人成色77777在线观看| 天堂亚洲网| 国产在线啪| 99热这里只有免费国产精品| 天天综合网色中文字幕| 色悠久久久|