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
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 亚洲福利一区二区三区| 免费在线看黄网址| 亚洲va欧美va国产综合下载| 午夜三级在线| a级毛片免费网站| 99热这里只有精品2| 97无码免费人妻超级碰碰碰| 国产精品永久不卡免费视频| 国产三级毛片| 国产成人免费高清AⅤ| 国产成人成人一区二区| 东京热一区二区三区无码视频| 日韩美毛片| 国产一区二区视频在线| 无码人妻热线精品视频| 毛片网站观看| 日韩视频福利| 免费激情网址| 黄色片中文字幕| 国产小视频免费| 欧美综合在线观看| 日韩a在线观看免费观看| 亚洲婷婷丁香| 91亚洲精选| 2020最新国产精品视频| 秋霞国产在线| 99国产在线视频| 欧美成人手机在线观看网址| 伊人久久婷婷| 成人福利在线观看| 在线看国产精品| 一级爆乳无码av| 日韩大片免费观看视频播放| 国产性生交xxxxx免费| 国禁国产you女视频网站| 日本在线免费网站| 午夜国产理论| 亚洲精品动漫| 拍国产真实乱人偷精品| 精品一区二区三区无码视频无码| 国产精品久久久久无码网站| 国产呦视频免费视频在线观看| 欧美另类精品一区二区三区| 国产精品无码AV中文| 国产情精品嫩草影院88av| 亚洲色偷偷偷鲁综合| 国产亚洲欧美另类一区二区| 71pao成人国产永久免费视频| 色噜噜久久| 91九色最新地址| 99精品伊人久久久大香线蕉| 国产欧美精品专区一区二区| 久久 午夜福利 张柏芝| 亚洲欧美一区二区三区麻豆| 91精品国产91欠久久久久| 青草午夜精品视频在线观看| 午夜少妇精品视频小电影| 91黄视频在线观看| 精品色综合| 91久草视频| 国产区人妖精品人妖精品视频| а∨天堂一区中文字幕| 亚洲中文无码av永久伊人| 多人乱p欧美在线观看| 99无码中文字幕视频| 最新国产网站| 伊人丁香五月天久久综合 | 久热中文字幕在线| 91精品国产综合久久不国产大片| 欧美亚洲另类在线观看| 伊人久久大线影院首页| 国产精品久久国产精麻豆99网站| 欧美在线精品怡红院| 国产女同自拍视频| 亚洲国产91人成在线| 国产精品自拍合集| 成人免费黄色小视频| 男女男精品视频| 无码精品福利一区二区三区| 91系列在线观看| 白浆免费视频国产精品视频| 99久久精品美女高潮喷水|