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

基于ASP.NET網站防范SQL注入的網絡安全技術分析

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

陳志輝,吳敏敏

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

基于ASP.NET網站防范SQL注入的網絡安全技術分析

陳志輝,吳敏敏

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

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

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

1 引言

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

2 SQL注入概念

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

3 基于ASP.NET網站SQL注入攻擊實例分析

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

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

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

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

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

在數據庫中找到一條對應的記錄,登錄成功.

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

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

3.2 利用數據更新的SQL注入

設后臺數據庫中有一張表users,表的結構如表1:

表1 用戶信息表

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

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

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

3.3 利用插入數據的SQL注入

設后臺數據庫中有一張表users,表的結構如表n.

普通用戶注冊代碼:

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

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

3.4 利用Get漏洞的SQL注入

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

圖1 Get注入漏洞

(2)在地址欄里面輸入http://localhost/site/ users.aspx?name=wmm’%20and%20’1’=’1頁面運行正常,運行結果和在地址欄里面輸入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注入攻擊,比如猜測后臺數據庫的表名、字段名等重要信息的攻擊.

(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網站SQL注入攻擊的防范措施

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

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

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

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

4.2 基于ASP.NET網站SQL注入攻擊防范實例分析

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

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

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

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

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

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

性別只允許是男或者女.

出生日期限制提交日期型數據給數據庫.

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

4.2.2 登錄頁面的防范措施

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

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

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

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

5 總結

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

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

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

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

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

〔5〕余杰,李莎莎.SOL Server項目開發實踐[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)

猜你喜歡
頁面數據庫用戶
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 久久特级毛片| 热久久这里是精品6免费观看| 国产在线观看91精品亚瑟| 九九热精品视频在线| 2021天堂在线亚洲精品专区| 丁香婷婷久久| 成人中文在线| 精品91在线| 国产美女丝袜高潮| 欧美日韩午夜| 国产玖玖视频| 国产精品尤物在线| 欧美福利在线| 国产成人乱无码视频| 亚洲人成网站色7777| 亚洲欧洲综合| 青青操国产| 亚洲精品无码抽插日韩| 色香蕉影院| 九九免费观看全部免费视频| 无码专区在线观看| a毛片免费观看| 日韩天堂在线观看| 久久精品国产精品一区二区| 华人在线亚洲欧美精品| 综合久久五月天| 中国国产一级毛片| 亚洲精品在线影院| 日韩亚洲综合在线| 天堂网亚洲综合在线| 国产精品一区二区在线播放| 亚洲国产成人无码AV在线影院L| 九九九九热精品视频| 久久精品国产免费观看频道| 人人看人人鲁狠狠高清| 日本一本正道综合久久dvd| 亚洲人成网站在线播放2019| 亚洲五月激情网| 国产精品嫩草影院av| 免费又黄又爽又猛大片午夜| 制服丝袜无码每日更新| 国产丝袜啪啪| 97se亚洲综合在线天天| 美女扒开下面流白浆在线试听| 午夜久久影院| 亚洲av无码成人专区| 欧美日韩一区二区在线免费观看| 成人日韩欧美| 国产精品第一区| 国产欧美专区在线观看| 99热这里只有精品在线播放| 高清欧美性猛交XXXX黑人猛交| 色婷婷亚洲综合五月| 国产成熟女人性满足视频| 久久永久精品免费视频| 制服无码网站| 手机精品福利在线观看| 亚洲中久无码永久在线观看软件| 人妻丰满熟妇αv无码| 日韩免费中文字幕| AV无码国产在线看岛国岛| 亚洲成人精品| 高潮爽到爆的喷水女主播视频| 亚洲综合精品香蕉久久网| 亚洲视频在线青青| 性网站在线观看| 伊人久久综在合线亚洲2019| 99久久国产自偷自偷免费一区| 色综合热无码热国产| 国产精品美女免费视频大全| 亚洲国产成人无码AV在线影院L| 国产Av无码精品色午夜| 国产第一页免费浮力影院| 日韩午夜福利在线观看| 国产国产人免费视频成18 | 五月婷婷丁香综合| 精品久久久久无码| 国产视频一区二区在线观看| 亚洲专区一区二区在线观看| 青青草原国产免费av观看| 五月婷婷亚洲综合| 国产香蕉97碰碰视频VA碰碰看 |