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

        ?

        基于ASP.NET網(wǎng)站防范SQL注入的網(wǎng)絡安全技術(shù)分析

        2012-09-01 00:17:02陳志輝吳敏敏
        赤峰學院學報·自然科學版 2012年13期
        關(guān)鍵詞:頁面數(shù)據(jù)庫用戶

        陳志輝,吳敏敏

        (莆田學院 電子信息工程系,福建 莆田 351100)

        基于ASP.NET網(wǎng)站防范SQL注入的網(wǎng)絡安全技術(shù)分析

        陳志輝,吳敏敏

        (莆田學院 電子信息工程系,福建 莆田 351100)

        W eb技術(shù)在各個領域得到日益廣泛的應用,給人們的生活帶來了便利,也帶來了前所未有的巨大安全風險.目前對Web業(yè)務系統(tǒng),威脅最嚴重的兩種攻擊方式是SQL注入攻擊(SQL Injection)和跨站腳本攻擊(XSS).文中通過具體案例分析了基于ASP.NET網(wǎng)站的SQL注入攻擊主要手段和實現(xiàn)過程,總結(jié)了一般的SQL注入攻擊的防范措施.

        ASP.NET;SQL注入;防范措施

        1 引言

        隨著Internet的發(fā)展,Web應用在電子政務、電子商務等領域得到廣泛的應用,這給人們的生活工作帶來極大的便利,但同時也帶來了極大的安全隱患.根據(jù)世界知名的Web安全與數(shù)據(jù)庫安全研究組織OWASP提供的報告,目前對Web業(yè)務系統(tǒng),威脅最嚴重的兩種攻擊方式是SQL注入攻擊(SQL Injection)和跨站腳本攻擊(XSS)[1].本文主要對基于ASP.NET網(wǎng)站的SQL注入漏洞和防御措施進行分析.

        2 SQL注入概念

        所謂SQL注入攻擊,就是攻擊者把非法的SQL命令插入到表單的輸入域或者頁面請求的查詢字符串,欺騙服務器執(zhí)行這些惡意的代碼.Web程序員如果在編程時候?qū)τ赪eb系統(tǒng)的安全性考慮不夠,沒有對用戶輸入的信息進行驗證和過濾,就會產(chǎn)生SQL注入漏洞[2].如果Web系統(tǒng)存在漏洞,SQL注入攻擊者在攻擊成功后可能獲得站點的最高管理權(quán),隨意修改站點的代碼、數(shù)據(jù)等,還可以查看數(shù)據(jù)庫中的一些重要數(shù)據(jù)信息,危害極大[3,4].

        3 基于ASP.NET網(wǎng)站SQL注入攻擊實例分析

        與ASP.NET搭配最密切的數(shù)據(jù)庫是SQL Server.SQL Server是公認運行在Windows平臺上最佳的數(shù)據(jù)庫,它具有對稱的多處理器結(jié)構(gòu)、搶占式多任務管理、完善的容錯與恢復能力[5,6],它也是SQL注入攻擊的主要源頭.

        Web系統(tǒng)數(shù)據(jù)提交方式有兩種,分別是Get和Post.Get提交數(shù)據(jù)是通過網(wǎng)頁的URL地址,需要把提交數(shù)據(jù)在URL地址中顯示出來,用戶可以看到也可以隨意輸入修改.Post傳輸數(shù)據(jù)時,不需要在URL中顯示出來.Post傳輸?shù)臄?shù)據(jù)量大,可以達到2M,而Get方法由于受到URL長度的限制,只能傳遞大約1024字節(jié).不同提交方式SQL注入攻擊方式不同,以下我就對基于ASP.NET+SQL Server網(wǎng)站的多種SQL注入攻擊實例進行分析.

        3.1 利用后臺登錄窗口的SQL注入后臺登錄窗口的代碼:

        這里conn是數(shù)據(jù)庫連接對象,name和password是用戶在登錄窗口輸入的用戶名和密碼,假設實際管理員用戶名為administrator,密碼為123456,那么Web應用發(fā)送給數(shù)據(jù)庫服務器的SQL語句為:

        select*from administrators where name='administrator'and password='123456'

        在數(shù)據(jù)庫中找到一條對應的記錄,登錄成功.

        但是如果用戶輸入的用戶名和密碼沒有經(jīng)過任何處理直接發(fā)送給數(shù)據(jù)庫服務器執(zhí)行,那么如果用戶輸入的用戶名為wmm'OR 1=1--,密碼為123,那么Web應用發(fā)送給數(shù)據(jù)庫服務器的SQL語句為:

        我們知道,在SQL Server中注釋符—表示注釋掉注釋符后面本行內(nèi)容,1=1恒為真,OR運算中兩個操作數(shù)只要一個為真,結(jié)果就為真,因此上面的SQL語句where后面的條件恒為真,返回administrators表的所有記錄,dr.read()返回的結(jié)果就為真,我們就成功地登錄了.還有其它方法,原理都是一樣的,只要讓dr.read()返回的結(jié)果就為真就行了.

        3.2 利用數(shù)據(jù)更新的SQL注入

        設后臺數(shù)據(jù)庫中有一張表users,表的結(jié)構(gòu)如表1:

        表1 用戶信息表

        name和password是用戶名和密碼,level是用戶等級,1表示管理員,2表示普通用戶.普通用戶更新密碼代碼:

        這里conn是數(shù)據(jù)庫連接對象,password是用戶輸入的新密碼,但是如果用戶輸入的新密碼沒有經(jīng)過任何處理直接發(fā)送給數(shù)據(jù)庫服務器執(zhí)行,那么假設普通用戶wmm輸入的新密碼為123',level='1,那么Web應用發(fā)送給數(shù)據(jù)庫服務器的SQL語句為:

        那普通用戶wmm就變成了管理員.

        3.3 利用插入數(shù)據(jù)的SQL注入

        設后臺數(shù)據(jù)庫中有一張表users,表的結(jié)構(gòu)如表n.

        普通用戶注冊代碼:

        這里conn是數(shù)據(jù)庫連接對象,name和password是普通用戶在注冊窗口輸入的用戶名和密碼,默認插入的用戶級別為2(既普通用戶).那么假設普通用戶在注冊時候,輸入的用戶名為wmm,密碼為123456’,’1’)--,那么Web應用發(fā)送給數(shù)據(jù)庫服務器的SQL語句為:

        我們知道,在SQL Server中注釋符—表示注釋掉注釋符后面本行內(nèi)容,這樣在普通用戶注冊頁面就注冊了一個用戶名為wmm,密碼為123456,級別為1(既管理員)的用戶.

        3.4 利用Get漏洞的SQL注入

        (1)在地址欄里面輸入http://localhost/site/users.aspx?name=wmm’,得到結(jié)果如圖1所示.

        圖1 Get注入漏洞

        (2)在地址欄里面輸入http://localhost/site/ users.aspx?name=wmm’%20and%20’1’=’1頁面運行正常,運行結(jié)果和在地址欄里面輸入http://localhost/site/users.aspx?name=wmm相同.

        (3)在地址欄里面輸入http://localhost/site/ users.aspx?name=wmm’%20and%20’1’=’2頁面運行異常,其中%20是空格的URL編碼.

        如果以上三步全面滿足,users.aspx中一定存在SQL注入漏洞,那么攻擊者就可以通過這個頁面實施SQL注入攻擊,比如猜測后臺數(shù)據(jù)庫的表名、字段名等重要信息的攻擊.

        (1)猜測表名:在地址欄中輸入http://localhost/site/users.aspx?name=wmm’%20and%20(select%20count(*)%20from%20users)<>0%20and% 20name=’wmm,如果存在users表格,頁面返回正常.

        (2)猜測字段名:在地址欄中輸入http://localhost/site/users.aspx?name=wmm%20and%20(select%20count(name)%20from%20users)<>0% 20and%20name=’wmm,如果users表格中存在name字段,頁面返回正常.

        4 基于ASP.NET網(wǎng)站SQL注入攻擊的防范措施

        4.1 SQL注入攻擊客戶端安全措施

        SQL注入大多都是從客戶端滲透進來的.客戶端提交的SQL注入如果沒有進過驗證和過濾,直接當作可靠數(shù)據(jù)提交給服務器,那就會發(fā)生SQL注入攻擊,所以客戶端提交的數(shù)據(jù)在提交給服務器處理前,要進行驗證和過濾:

        (1)使用Server.HtmlEncode()函數(shù)對客戶端提交的數(shù)據(jù)進行編碼;(2)使用MD5對客戶端提交的數(shù)據(jù)進行加密;(3)定義正則表達式對客戶端提交的數(shù)據(jù)進行驗證,檢驗客戶端輸入的數(shù)據(jù)是否符合要求;

        (4)使用參數(shù)化的SQL或者直接使用存儲過程對數(shù)據(jù)庫進行數(shù)據(jù)查詢存取.

        4.2 基于ASP.NET網(wǎng)站SQL注入攻擊防范實例分析

        SQL注入是通過向服務器提交特殊的代碼,以達到攻擊者目的,要防范SQL注入攻擊首先要對客戶端提交的數(shù)據(jù)進行驗證和過濾.

        4.2.1 用戶注冊頁面的防范措施

        用戶注冊頁面的信息是通過表單以Post方式提交,注冊頁面提交的數(shù)據(jù)一般包括用戶名、密碼、性別、出生日期、備注等.

        限制用戶名由下劃線、數(shù)字、字母組成,長度在4到15之間.這樣攻擊者就不能輸入單引號、空格等特殊字符,輸入的字符的長度也有限,也就很難攻擊.

        這里name是用戶輸入的用戶名,RegexOptions.IgnoreCase是忽略大小寫.

        用戶輸入的密碼都要加密后提交給數(shù)據(jù)庫,可以使用MD5對密碼進行加密,但是該加密方法號稱不可逆,不過已經(jīng)被破解了,網(wǎng)上很容易搜到破解工具,我們最好做一些更改,網(wǎng)上的工具就無法破解了.

        性別只允許是男或者女.

        出生日期限制提交日期型數(shù)據(jù)給數(shù)據(jù)庫.

        備注里面的內(nèi)容用Server.HtmlEncode()函數(shù)進行編碼后提交給數(shù)據(jù)庫.

        4.2.2 登錄頁面的防范措施

        在登錄窗口用戶輸入的用戶名和密碼必須能夠在數(shù)據(jù)庫中找到相應的記錄才能夠登錄成功.如上面提到"select*from administrators where name='"+name+"'and password='"+password +"'",但是這樣攻擊者很容易繞過登錄驗證.

        為了安全起見應限制用戶在登錄窗口輸入的用戶名由下劃線、數(shù)字、字母組成,長度在4到15之間.也可以把用戶名和密碼分開驗證.先驗證用戶名"select*from administrators where name='"+ name+"'",如果返回的數(shù)據(jù)集非空,再驗證密碼password==rs[“password”],password為用戶輸入的密碼,rs[“password”]為數(shù)據(jù)庫內(nèi)的密碼

        4.2.3 URL傳值的SQL注入防范措施

        如上面提到http://localhost/site/users.aspx? name=wmm,name對應數(shù)據(jù)庫中name(用戶名)字段,限制由下劃線、數(shù)字、字母組成,長度在4到15之間,禁止用戶輸入SQL關(guān)鍵字,如Select、Insert、Update等.

        5 總結(jié)

        SQL注入是從正常的WWW端口訪問,而且表面看起來跟一般的Web頁面訪問沒什么區(qū)別,所以目前市面的防火墻都不會對SQL注入發(fā)出警報.程序員在編寫代碼時,沒有對用戶輸入的信息進行驗證和過濾,使應用程序存在安全隱患.SQL注入攻擊成功后,對服務器乃至系統(tǒng)都是巨大的威脅.因此,研究SQL注入攻擊的防范方法、加強代碼編寫時對用戶輸入信息的過濾檢查,對于開發(fā)安全的Web應用程序有著重要意義.

        〔1〕景煒.電子政務系統(tǒng)網(wǎng)絡安全的研究與應用[D].成都:電子科技大學,2006.5.

        〔2〕胡昌振.網(wǎng)絡入侵檢測原理與技術(shù)[M].北京:北京理工大學出版社,2006.156-182.

        〔3〕鄧吉,曹軼,羅詩堯.黑客攻防實戰(zhàn)入門(第2版) [M].北京:電子工業(yè)出版社,2007.76—91.

        〔4〕M ike Shema.Web安全手冊[M].北京:清華大學出版社,2005.62—68.

        〔5〕余杰,李莎莎.SOL Server項目開發(fā)實踐[M].北京:中國鐵道出版社,2006.112-116.

        〔6〕余晨,李文炬.SOL Server 2000培訓教程[M].北京:清華大學出版社,2002.32-35.

        〔7〕閆洪亮,李波,黎杰.ASP.NET程序設計[M].上海:上海交通大學出版社,2008.

        TP309;TP393

        A

        1673-260X(2012)07-0017-03

        莆田學院教改項目(JG200818)

        猜你喜歡
        頁面數(shù)據(jù)庫用戶
        大狗熊在睡覺
        刷新生活的頁面
        數(shù)據(jù)庫
        財經(jīng)(2017年2期)2017-03-10 14:35:35
        關(guān)注用戶
        商用汽車(2016年11期)2016-12-19 01:20:16
        關(guān)注用戶
        商用汽車(2016年6期)2016-06-29 09:18:54
        數(shù)據(jù)庫
        財經(jīng)(2016年15期)2016-06-03 07:38:02
        關(guān)注用戶
        商用汽車(2016年4期)2016-05-09 01:23:12
        數(shù)據(jù)庫
        財經(jīng)(2016年3期)2016-03-07 07:44:46
        數(shù)據(jù)庫
        財經(jīng)(2016年6期)2016-02-24 07:41:51
        如何獲取一億海外用戶
        激情视频国产在线观看| 蜜桃精品免费久久久久影院| 无码日韩人妻AV一区免费 | 久久亚洲av午夜福利精品西区| 国语对白免费观看123 | 精品国产一区二区三区性色| 免费不卡在线观看av| 免费国精产品自偷自偷免费看| 亚洲精品日本| 国产3p一区二区三区精品| 午夜不卡无码中文字幕影院| 影视先锋av资源噜噜| 加勒比在线一区二区三区| 一区二区三区四区国产亚洲| 一二三四五区av蜜桃| 亚洲男人的天堂在线aⅴ视频| 亚洲av日韩aⅴ无码电影| 国产av黄色一区二区| 久久久久免费精品国产| 国产一女三男3p免费视频| 国产美女高潮流白浆在线观看| 在线观看国产自拍视频| 亚洲综合色无码| 国产无遮挡a片又黄又爽| 无码中文字幕专区一二三| 熟女免费视频一区二区| 久久精品国产精品青草| 国产黄页网站在线观看免费视频| 国产三级黄色片子看曰逼大片| 亚洲最新精品一区二区| 免费a级作爱片免费观看美国| 国产成人精品自在线无码| 在线观看国产av一区二区| 欧洲美熟女乱又伦av影片| 欧美freesex黑人又粗又大| 国产亚洲视频在线观看播放| 国产精品大片一区二区三区四区| 亚洲人成77777在线播放网站| 97色在线视频| 日韩精品久久伊人中文字幕| 色天使久久综合网天天|