国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號

防范SQL指令植入式攻擊
2008-04-24   

什么是SQL 指令植入式攻擊?

在設(shè)計或者維護Web 網(wǎng)站時,你也許擔(dān)心它們會受到某些卑鄙用戶的惡意攻擊。的確,如今的 Web 網(wǎng)站開發(fā)者們針對其站點所在操作系統(tǒng)平臺或Web 服務(wù)器的安全性而展開的討論實在太多了。不錯,IIS 服務(wù)器的安全漏洞可能招致惡意攻擊;但你的安全檢查清單不應(yīng)該僅僅有 IIS 安全性這一條。有些代碼,它們通常是專門為數(shù)據(jù)驅(qū)動(data-driven) 的 Web 網(wǎng)站而設(shè)計的,實際上往往同其它 IIS 漏洞一樣存在嚴重的安全隱患。這些潛伏于代碼中的安全隱患就有可能被稱為“SQL 指令植入式攻擊” (SQL injection) 的手段所利用而導(dǎo)致服務(wù)器受到攻擊。

SQL 指令植入式攻擊技術(shù)使得攻擊者能夠利用 Web 應(yīng)用程序中某些疏于防范的輸入機會動態(tài)生成特殊的 SQL 指令語句。舉一個常見的例子:

某Web 網(wǎng)站采用表單來收集訪問者的用戶名和密碼以確認他有足夠權(quán)限訪問某些保密信息,然后該表單被發(fā)送到 Web 服務(wù)器進行處理。接下來,服務(wù)器端的ASP 腳本根據(jù)表單提供的信息生成 SQL 指令語句提交到 SQL 服務(wù)器,并通過分析SQL 服務(wù)器的返回結(jié)果來判斷該用戶名/密碼組合是否有效。

為了實現(xiàn)這樣的功能,Web 程序員可能會設(shè)計兩個頁面:一個 HTML 頁面 (Login.htm) 用于登錄,另一個ASP 頁面 (ExecLogin.asp) 用于驗證用戶權(quán)限(即向數(shù)據(jù)庫查詢用戶名/密碼組合是否存在)。具體代碼可能象這樣:

Login.htm (HTML 頁面)

代碼:<form action="ExecLogin.asp" method="post"> Username: <input type="text" name="txtUsername"><br> Password: <input type="password" name="txtPassword"><br> <input type="submit"> </form>

ExecLogin.asp (ASP 頁面)  代碼:<% Dim p_strUsername, p_strPassword, objRS, strSQL p_strUsername = Request.Form("txtUsername") p_strPassword = Request.Form("txtPassword") strSQL = "SELECT * FROM tblUsers " & _ "WHERE Username=" & p_strUsername & _ " and Password=" & p_strPassword & "" Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN=..." If (objRS.EOF) Then Response.Write "Invalid login." Else Response.Write "You are logged in as " & objRS("Username") End If Set objRS = Nothing %>

乍一看,ExecLogin.asp 的代碼似乎沒有任何安全漏洞,因為用戶如果不給出有效的用戶名/密碼組合就無法登錄。然而,這段代碼偏偏不安全,而且它正是SQL 指令植入式攻擊的理想目標。具體而言,設(shè)計者把用戶的輸入直接用于構(gòu)建SQL 指令,從而使攻擊者能夠自行決定即將被執(zhí)行的 SQL 指令。例如:攻擊者可能會在表單的用戶名或密碼欄中輸入包含“ or ”和“=” 等特殊字符。于是,提交給數(shù)據(jù)庫的 SQL 指令就可能是:  代碼:SELECT * FROM tblUsers WHERE Username= or = and Password = or =

這樣,SQL 服務(wù)器將返回 tblUsers 表格中的所有記錄,而 ASP 腳本將會因此而誤認為攻擊者的輸入符合 tblUsers 表格中的第一條記錄,從而允許攻擊者以該用戶的名義登入網(wǎng)站。

SQL 指令植入式攻擊還有另一種形式,它發(fā)生在 ASP 服務(wù)器根據(jù) querystring 參數(shù)動態(tài)生成網(wǎng)頁時。這里有一個例子,此 ASP 頁面從 URL 中提取出 querystring 參數(shù)中的 ID 值,然后根據(jù) ID 值動態(tài)生成后繼頁面:  代碼:<% Dim p_lngID, objRS, strSQL p_lngID = Request("ID") strSQL = "SELECT * FROM tblArticles WHERE ID=" & p_lngID Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open strSQL, "DSN=..." If (Not objRS.EOF) Then Response.Write objRS("ArticleContent") Set objRS = Nothing %>

在一般情況下,此 ASP 腳本能夠顯示具有特定 ID 值的文章的內(nèi)容,而 ID 值是由 URL 中的 querystring 參數(shù)指定的。例如:當URL為http://www.example.com/Article.asp?ID=1055 時,ASP 就會根據(jù) ID 為 1055 的文章提供的內(nèi)容生成頁面。

如同前述登錄頁面的例子一樣,此段代碼也向SQL 指令植入式攻擊敞開了大門。某些惡意用戶可能會把 querystring 中的文章 ID 值偷換為“0 or 1=1”等內(nèi)容(也就是說,把 URL 換成http://www.example.com/Article.asp?ID=0 or 1=1) 從而誘使 ASP 腳本生成不安全的 SQL 指令如:  代碼:SELECT * FROM tblArticles WHERE ID=0 or 1=1

于是,數(shù)據(jù)庫將會返回所有文章的內(nèi)容。

當然了,本例服務(wù)器所受的攻擊不一定會引起什么嚴重后果。可是,攻擊者卻可能變本加厲,比如用同樣的手段發(fā)送 DELETE 等 SQL 指令。這只需要簡單地修改前述 URL 中的 querystring 參數(shù)就可以了!例如:任何人都可以通過 http://www.example.com/Article.asp?ID=1055; DELETE FROM tblArticles ” 之類的 URL 來訪問 Web 網(wǎng)站。

SQL 指令植入式攻擊的危害

SQL 指令植入式攻擊可能引起的危害取決于該網(wǎng)站的軟件環(huán)境和配置。當 Web 服務(wù)器以操作員(dbo)的身份訪問數(shù)據(jù)庫時,利用SQL 指令植入式攻擊就可能刪除所有表格、創(chuàng)建新表格,等等。當服務(wù)器以超級用戶 (sa) 的身份訪問數(shù)據(jù)庫時,利用SQL 指令植入式攻擊就可能控制整個 SQL 服務(wù)器;在某些配置下攻擊者甚至可以自行創(chuàng)建用戶帳號以完全操縱數(shù)據(jù)庫所在的 Windows 服務(wù)器。

杜絕SQL 指令植入式攻擊

杜絕SQL 指令植入式攻擊的第一步就是采用各種安全手段監(jiān)控來自 ASP request 對象 (Request 、 Request.QueryString 、 Request.Form 、 Request.Cookies 和 Request.ServerVariables) 的用戶輸入,以確保 SQL 指令的可靠性。具體的安全手段根據(jù)你的 DBMS 而異,下面給出的都是基于 MS SQL Server的例子。

在前述登錄頁面的例子中,腳本期望得到的兩個輸入變量 (txtUserName 和 txtPassword)均為字符串類型。無論用戶在哪個參數(shù)中插入單引號,他都可能讓數(shù)據(jù)庫執(zhí)行單引號中的 SQL 指令。為了杜絕此類SQL 指令植入式攻擊,我們可以借助 Replace 函數(shù)剔除單引號,比如:

代碼:p_strUsername = Replace(Request.Form("txtUsername"), "", "") p_strPassword = Replace(Request.Form("txtPassword"), "", "")

在第二個例子中,腳本期望的輸入變量是長整型變量 (ID) 。用戶可以通過在 ID 參數(shù)中插入特殊字符來運行不安全的 SQL 指令。為了為了杜絕此類SQL 指令植入式攻擊,我們只需要借助 CLng 函數(shù)限制 ID 值為長整型變量,比如:  代碼:p_lngID = CLng(Request("ID"))

當用戶試圖在 ID 中包含特殊字符時,CLng 就會產(chǎn)生一個錯誤。

為了進一步減少SQL 指令植入式攻擊的危脅,請務(wù)必清除客戶端錯誤信息文本中的所有技術(shù)資料。某些錯誤信息往往泄露了技術(shù)細節(jié),從而讓攻擊者可以看出服務(wù)器的安全漏洞所在。這里指的錯誤信息不但包括應(yīng)用程序生成的消息框,還包括來自 IIS 的出錯提示。為此,你可以禁止由 IIS 發(fā)送的詳細錯誤信息,而改用自定義的出錯頁面。(關(guān)于創(chuàng)建自定義的出錯頁面的更多信息,請務(wù)必參閱 《Creating Custom ASP Error Pages》。)

最后,為了減輕SQL 指令植入式攻擊的危害,請限制 Web 應(yīng)用程序所用的數(shù)據(jù)庫訪問帳號權(quán)限。一般來說,應(yīng)用程序沒有必要以 dbo 或者 sa 的身份訪問數(shù)據(jù)庫。記住,給它的權(quán)限越少,你的網(wǎng)站越安全!你還可以考慮分別給每個需要訪問數(shù)據(jù)庫的對象分配只擁有必需權(quán)限的帳號,以分散安全漏洞。例如:同是前端用戶界面,當用于公共場所時就比用于具有本地內(nèi)容管理機制的平臺時更加需要嚴格限制數(shù)據(jù)庫訪問權(quán)限。

熱詞搜索:

上一篇:從IIS轉(zhuǎn)到SQL數(shù)據(jù)庫安全
下一篇:數(shù)據(jù)庫安全:當SQL Server數(shù)據(jù)庫崩潰時如何恢復(fù)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国产成人免费高清| 欧美亚洲一区二区在线| 91在线视频18| 亚洲丰满少妇videoshd| 欧美成人女星排行榜| av高清不卡在线| 日本伊人色综合网| 最新日韩av在线| 精品国产乱码久久久久久免费| av电影在线观看不卡| 蜜臀精品一区二区三区在线观看 | 丁香婷婷综合色啪| 成人中文字幕在线| 亚洲一区免费在线观看| 欧美另类久久久品| 国产精品福利影院| 久久久久久久精| 亚洲男同性视频| 日韩限制级电影在线观看| 91亚洲大成网污www| 亚洲综合成人在线视频| 欧美v亚洲v综合ⅴ国产v| 亚洲国产精品二十页| 国产精品美女一区二区| 日韩一区二区在线观看| 亚洲三级电影全部在线观看高清| 日韩三级精品电影久久久 | 欧美午夜影院一区| 欧美电影免费观看高清完整版在线 | 中文字幕视频一区二区三区久| 欧美丝袜自拍制服另类| 成人午夜碰碰视频| 国产美女在线观看一区| 美女久久久精品| 免费观看成人av| 亚洲va欧美va天堂v国产综合| 日韩伦理免费电影| 国产精品免费视频网站| 国产日本欧洲亚洲| 久久久久97国产精华液好用吗 | 日韩成人午夜电影| 日韩高清中文字幕一区| 亚洲成精国产精品女| 亚洲亚洲精品在线观看| 一区二区三区不卡视频在线观看| 一区视频在线播放| 亚洲欧美另类久久久精品2019| 欧美国产一区视频在线观看| 精品免费视频一区二区| 精品久久人人做人人爱| 精品国产亚洲在线| 国产女人水真多18毛片18精品视频| 欧美精品一区二区久久久| 日韩精品一区二区在线| 久久亚洲综合色| 国产精品你懂的| 有码一区二区三区| 日本欧美久久久久免费播放网| 日韩精品一二三四| 国产在线看一区| 99久久久无码国产精品| 欧美图片一区二区三区| 91精品国产入口| 日本一区二区三区国色天香| 中文字幕一区二区在线观看| 亚洲电影你懂得| 中文在线一区二区| av在线播放一区二区三区| 国产精品自拍av| 懂色av中文字幕一区二区三区| 成人av在线资源网站| 色综合一区二区| 欧美美女一区二区| xnxx国产精品| 亚洲免费视频中文字幕| 婷婷激情综合网| 国产a久久麻豆| 欧美影视一区在线| 久久久久国色av免费看影院| 亚洲免费观看高清完整版在线观看熊| 日韩av一区二区三区四区| 国内精品国产成人| 色吧成人激情小说| 精品成人免费观看| 亚洲午夜激情av| 国产精品一区二区不卡| 色婷婷久久综合| 久久影音资源网| 亚洲第一搞黄网站| 国产精品99久久久久| 色av成人天堂桃色av| 久久一日本道色综合| 亚洲国产精品一区二区www在线| 国产原创一区二区| 91麻豆精品国产91| 亚洲免费观看在线视频| 成人一区二区三区在线观看 | 成人深夜视频在线观看| 日韩一区二区三区视频在线| 最新热久久免费视频| 国产精品一区免费视频| 91精品国产综合久久蜜臀| 中文字幕一区av| 国产一区二区三区久久悠悠色av| 欧美裸体一区二区三区| 1区2区3区精品视频| 国产成人av电影在线播放| 欧美日韩精品欧美日韩精品| 亚洲视频综合在线| 国产激情视频一区二区三区欧美 | 日韩久久精品一区| 国模无码大尺度一区二区三区| 91欧美激情一区二区三区成人| 久久综合久久99| 奇米精品一区二区三区在线观看一| 99久久99久久免费精品蜜臀| 精品国产一区a| 日本欧美一区二区在线观看| 欧美性欧美巨大黑白大战| 亚洲欧洲性图库| 国产高清久久久| 7799精品视频| 日本成人中文字幕| 日韩欧美精品三级| 成人av在线看| 国产精品乱码人人做人人爱| a级精品国产片在线观看| 精品精品国产高清一毛片一天堂| 日韩—二三区免费观看av| 欧美自拍偷拍午夜视频| 亚洲综合精品自拍| 91国产免费观看| 天堂一区二区在线免费观看| 91久久精品一区二区三区| 国产女人aaa级久久久级 | 日韩一级片在线观看| 免费看日韩精品| 制服丝袜av成人在线看| 午夜国产精品一区| 日韩女同互慰一区二区| 美女在线一区二区| 久久综合狠狠综合久久综合88 | 精品日韩99亚洲| 床上的激情91.| 亚洲男同性视频| 欧美中文字幕一二三区视频| 亚洲制服丝袜av| 欧美狂野另类xxxxoooo| 麻豆91在线看| 亚洲欧美怡红院| 欧美日韩精品高清| 男人的j进女人的j一区| 欧美不卡一二三| av电影一区二区| 亚洲一区二区3| 日韩精品中文字幕一区二区三区 | 久久综合久久99| 色综合夜色一区| 一区二区三区产品免费精品久久75 | 久久亚洲精品国产精品紫薇| 成人动漫在线一区| 亚洲精品国产精品乱码不99| 欧美日韩在线不卡| 国产精品亚洲一区二区三区在线| 国产精品第五页| 91精品国产高清一区二区三区蜜臀| 久久se精品一区二区| 国产精品色噜噜| 欧美美女一区二区三区| 激情小说亚洲一区| 一区二区欧美视频| 国产日韩欧美电影| 欧美一级电影网站| 成人一区二区三区视频在线观看| 午夜久久久久久电影| 久久一区二区三区国产精品| 波多野结衣中文字幕一区| 免费人成在线不卡| 亚洲精品乱码久久久久| 日韩欧美国产一区二区在线播放| 国产精品亚洲成人| 三级在线观看一区二区 | 久久精品欧美一区二区三区麻豆 | 99vv1com这只有精品| 国内精品久久久久影院薰衣草| 《视频一区视频二区| 久久五月婷婷丁香社区| 欧美人狂配大交3d怪物一区| 成人免费毛片aaaaa**| 久久草av在线| 亚洲夂夂婷婷色拍ww47| 日本一区免费视频| www国产成人免费观看视频 深夜成人网| 欧美日韩一本到| 色狠狠色噜噜噜综合网| 精东粉嫩av免费一区二区三区| 亚洲a一区二区| 亚洲第一主播视频| 亚洲日本在线a| 亚洲日本在线天堂|