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

WEB系統中SQL注入防御方法的研究

2015-03-31 16:05:00焦玉華
大眾科技 2015年4期
關鍵詞:程序設置數據庫

焦玉華

(山東工商學院,山東 煙臺 264005)

WEB系統中SQL注入防御方法的研究

焦玉華

(山東工商學院,山東 煙臺 264005)

SQL注入風險已成為WEB應用最大的安全隱患之一,通過介紹SQL注入的本質及特點,詳細分析了SQL注入的一般思路和實現方法,最后從服務器IIS設置、數據庫設置和程序編寫三個方面提出了針對SQL注入的防御措施。

網絡安全;SQL注入攻擊;SQL注入點

1 引言

隨著WEB技術的迅速發展,基于B/S結構的WEB應用得到了廣泛的普及,涉及到教育、金融、社交等多個領域,這使得其安全問題備受關注。在OWASP(開放式web應用程序安全項目)研究公布的WEB應用程序最可能、最常見、最危險的十大安全隱患中,SQL注入風險位居前列,并因其普遍程度高,危害程度大,成為目前主要的WEB應用攻擊方法之一。本文以ASP+SqlServer為例,介紹SQL注入的過程和防御方法。

2 SQL注入概述

2.1SQL注入的本質

SQL注入攻擊就其本質而言,就是攻擊者利用SQL語法的特點,針對應用程序開發者編程過程中沒有對用戶的輸入數據進行合法性驗證的漏洞,向應用程序中插入一些SQL語句來實現對數據庫未經授權的訪問和檢索,根據WEB頁面返回的結果,獲得自己想要的數據。

2.2SQL注入的特點

(1)攻擊的廣泛性。由于SQL注入是利用的SQL語法,因此在理論上講,只要支持SQL語言標準的數據庫軟件都有可能受到SQL注入的攻擊,例如MS Sql Server、Mysql、Oracle、DB2等。

(2)技術門檻低。SQL注入的原理相對簡單,易于掌握和實施。只要有SQL語法基礎的人都可以進行SQL注入攻擊,同時還有很多專門的SQL注入工具,例如SQLMAP、HDSI,這樣即使完全不懂編程、不懂 SQL語法的人的都可以進行SQL注入攻擊。

(3)隱蔽性強。SQL注入攻擊是通過正常的WWW端口訪問數據庫,語法結構也是正確的SQL語句,與正常的頁面訪問完全一樣,因此這種攻擊可以順利地越過防火墻而不被發現。

3 SQL注入的實現

SQL注入的一般思路是首先判斷 WEB應用是否存在SQL注入漏洞,即尋找注入點,判斷后臺數據庫類型,再確定XP_CMDSHELL可執行情況,進一步發現WEB虛擬目錄,最后上傳ASP木馬,得到管理員權限。

3.1查找SQL注入點

HTTP協議的請求方法中,常用到GET和POST兩種。GET方法是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,從服務器上獲取數據。POST方法將表單內各個字段與其內容放置在 HTML HEADER內一起傳送到ACTION屬性所指的URL地址,是向服務器傳送數據。SQL注入點最可能出現的地方就是使用GET和POST方法與服務器交換數據的地方。常用的手工查找SQL注入點的方法有以下兩種:“加單引號”法 和“1=1、1=2”法。

3.2利用SQL注入點進行注入攻擊

下面以用戶登錄驗證模塊為例,說明SQL注入攻擊的實施過程。在登錄驗證的程序中,通常用的SQL語句為:select * from usertable where username=‘admin’and password=’123’。如果攻擊者以“admin’or 1=1 --”作為用戶名輸入時,SQL語句變為:select * from usertable where username=‘admin’or 1=1 -- and password=’123’,“--”在SQL語法中是注釋符,其后面的語句都會被注釋掉,不會被執行,而“or 1=1”恒為真,這使得 where條件判斷也恒為真,攻擊者就可以跳過用戶驗證順利進入系統。

4 SQL注入的防御方法

針對SQL注入攻擊的本質和實現方法,從服務器IIS設置、數據庫設置和程序編寫三個方面分析如何防御SQL注入。

4.1服務器IIS設置

程序員在編寫或調試程序時,IIS會把詳細的代碼錯誤信息反映在WEB頁面中,讓程序員能夠迅速的發現程序的問題所在,而攻擊者恰恰也可以利用這個錯誤信息發現系統的漏洞。因此在WEB系統發布后,在IIS的配置調試選項卡中,選擇“向客戶端發送下列文本錯誤信息(T)”選項,定義一個統一固定的錯誤提示,替代詳細的錯誤提示,這樣可以在一定程度上減少注入試探。

4.2數據庫設置

猜測表名、字段名也是SQL注入的一種方法,因此在數據庫的命名上要做到標準規范,避免用 admin、username、password等常見詞作為表名或字段名。WEB應用連接數據庫時,要遵循“最小權限準則”,堅決不能用sa權限的用戶連接數據庫,對表的select、update、delete操作權限要做精確的設置。

4.3程序編寫

程序員編寫程序時不規范、不嚴謹,是 WEB應用存在SQL注入點的主要原因,應該從以下四個方面去規范程序編寫,減少系統漏洞。

4.3.1對用戶的輸入進行合法性驗證

(1)限定用戶輸入的字符串長度。這個方法簡單易操作,可以有效地防止攻擊者構造較長SQL語句插入到WEB應用中。可以通用設置文本字段的 maxlength屬性來實現,也可以通過函數len()進行判斷。

(2)屏蔽或替換特殊的符號。在SQL注入中,單引號、括號、注釋符號、空格、雙引號等都是常用的特殊符號,可以根據實際情況將這些特殊符號屏蔽掉,也可以用replace()替換成全角或中文符號,使惡意的SQL語句無法插入到系統中。

(3)對系統的輸入要求做專門驗證。

在WEB應用的輸入設計中,對有些輸入的內容要求比較具體,例如只允許輸入數字、字母、漢字或者它們的組合等,可以利用或者構造相應的函數去驗證,我們以只允許輸入數字為例:通過IsNumeric()或者ASC()判斷ASCII碼值來確定輸入是否為數字,也可以利用正則表達式“^[0-9]+$”來判斷。

4.3.2使用參數化查詢

部分程序員在編寫程序時,為了省時省力,以字符串拼接的方式構建SQL語句,導致系統中存在SQL注入隱患,而參數化查詢是目前最有效的預防SQL注入攻擊的方法。參數化查詢是指程序鏈接并訪問數據庫時,在需要填入數據的地方,使用參數來賦值。在使用參數化查詢的情況下,數據庫不會將參數的內容當做SQL指令的一部份來執行,而是先進行SQL 指令的編譯,再套用參數執行,這樣即使參數中含有惡意的指令,也不會被數據庫執行。同樣以登錄驗證為例,使用參數化查詢來實現:

dim rs,cmd,cn

set cmd=server.CreateObject("adodb.command")

set cn=server.CreateObject("adodb.connection")

set rs=server.CreateObject("adodb.recordset")

cn.Open"DRIVER={SQL Server};SERVER=服務器;UID=用戶名;PWD=密碼;

DATABASE=數據庫"

cmd.activeconnection=cn

cmd.commandtext="select*fromusertablewhere username=? and password=?"

cmd.commandtype=1

cmd.prepared=true

cmd.parameters.append

cmd.createparameter("username",adVarChar,

adparaminput,10)

cmd.parameters.append

cmd.createparameter("password",adVarChar,

adparaminput,10)

cmd.parameters("username")=request.form("username")

cmd.parameters("password")=request.form("password")

rs=cmd.execute

在程序編寫中,除了上述方法,還可以對數據庫的重要數據進行MD5加密,記錄跟蹤攻擊者的IP和攻擊行為,利用專門的掃描工具查找系統的注入漏洞。

5 結語

SQL注入攻擊是攻擊者廣泛使用的一種攻擊手段,嚴重威脅著應用程序的安全。因此,WEB應用的開發人員和維護人員必須要掌握SQL注入攻擊的常用方法和防御措施,在程序開發時要合理設計,規范編程,盡量完善代碼避免漏洞,這樣才能保護系統的安全,遠離SQL注入攻擊的危害。

[1] 王云,郭外萍,陳承歡.Web項目中的SQL注入問題研究與防范方法[J].計算機工程與設計,2010,(5):976-978.

[2] 陳遜.SQL注入攻擊原理與防范[J].電腦知識與技術,2008,(3):12.

[3] 黃明輝.基于SQL Server的SQL注入攻擊防范方法[J].計算機安全,2008,(8):122-124.

The study of WEB SQL injection defense system method

SQL injection risk has become one of the biggest security risks WEB application, the nature and characteristics through the introduction of SQL injection, a detailed analysis of the general ideas and methods SQL injection, and finally write IIS settings from the server, database settings and procedures for the three areas the defense against SQL injection.

Network security; SQL injection attacks; SQL injection point

TP393.08

A

1008-1151(2015)04-0003-02

2015-03-13

山東工商學院青年科研基金項目(2012QN203)。

焦玉華(1979-),男,河南衛輝人,山東工商學院工程師,研究方向為教學管理。

猜你喜歡
程序設置數據庫
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 天天综合网色| 91亚瑟视频| 中文无码毛片又爽又刺激| 国产精品熟女亚洲AV麻豆| 亚洲另类第一页| 日韩激情成人| 亚洲第一在线播放| 亚洲视频a| 亚洲视频影院| 国产无套粉嫩白浆| 成年女人a毛片免费视频| 欧美日韩在线成人| 国产精品一区不卡| 久久综合AV免费观看| 伊人色天堂| 热re99久久精品国99热| аv天堂最新中文在线| 美女一级毛片无遮挡内谢| 亚洲成人www| 精品国产91爱| 欧美综合成人| 色135综合网| 国产天天射| 日韩一区精品视频一区二区| 精品无码国产一区二区三区AV| 国产在线小视频| 国产精品三级专区| 色欲色欲久久综合网| 日本不卡免费高清视频| 亚洲综合香蕉| 亚洲欧美自拍中文| 亚洲成人一区二区| 亚洲人成色在线观看| 动漫精品啪啪一区二区三区| 黄色网站不卡无码| 91免费国产高清观看| 亚洲欧洲综合| 欧美日韩午夜| 亚洲精品桃花岛av在线| 韩日无码在线不卡| 久久永久精品免费视频| 手机成人午夜在线视频| 亚洲欧美日韩动漫| 亚洲有无码中文网| 毛片久久网站小视频| 多人乱p欧美在线观看| 国产成人av大片在线播放| 日韩无码黄色网站| 国产夜色视频| 国产精品粉嫩| AV在线天堂进入| 蜜桃视频一区| 天天干伊人| 亚洲欧美极品| 看你懂的巨臀中文字幕一区二区| 成人午夜在线播放| 欧美一级高清视频在线播放| 五月丁香伊人啪啪手机免费观看| 亚洲无码电影| 激情综合激情| 色135综合网| 亚洲第一视频网| 26uuu国产精品视频| 91精品人妻一区二区| 欧美亚洲国产一区| 热伊人99re久久精品最新地| 又黄又湿又爽的视频| 亚洲第一福利视频导航| 国产一区二区精品福利| 亚洲精品无码人妻无码| 欧美爱爱网| 久久婷婷色综合老司机| 亚洲动漫h| 婷婷色一二三区波多野衣| 91在线无码精品秘九色APP| 国产日韩欧美中文| 四虎精品黑人视频| 亚洲综合九九| 欧美国产在线精品17p| 国产理论一区| a级毛片毛片免费观看久潮| 亚洲无线观看|