国产一级一区二区_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久久夜色精品国产_欧美色网一区二区
9191精品国产综合久久久久久 | 亚洲夂夂婷婷色拍ww47| 国产精品一区二区久久不卡| 日韩一二在线观看| 美脚の诱脚舐め脚责91| 日韩一区二区三区视频在线 | 国产精品一区专区| 欧美极品少妇xxxxⅹ高跟鞋 | 一区二区三区波多野结衣在线观看| 色呦呦国产精品| 亚洲成人免费在线观看| 久久综合久久综合亚洲| 99精品欧美一区| 午夜精品福利一区二区三区av| 欧美一区二区三区视频免费| 国产精品正在播放| 亚洲尤物在线视频观看| 日韩精品中文字幕一区| av在线不卡观看免费观看| 天天影视色香欲综合网老头| 国产三区在线成人av| 日本高清不卡aⅴ免费网站| 精品一区二区免费在线观看| 国产精品高潮呻吟| 337p亚洲精品色噜噜狠狠| 成人免费看视频| 麻豆国产一区二区| 一区二区三区在线影院| 精品成人a区在线观看| 欧洲另类一二三四区| 国产91高潮流白浆在线麻豆| 奇米精品一区二区三区在线观看| 亚洲欧美成aⅴ人在线观看 | 中文字幕在线一区二区三区| 日韩欧美在线观看一区二区三区| 成人av小说网| 国内精品伊人久久久久av影院| 国产剧情在线观看一区二区| 一片黄亚洲嫩模| 中文av字幕一区| 精品国产一区二区三区不卡 | 中文字幕在线不卡视频| 久久天天做天天爱综合色| 欧美日韩亚洲不卡| 日本韩国欧美一区二区三区| av网站免费线看精品| 国产成人免费高清| 国产高清精品网站| 国产中文字幕精品| 国产美女娇喘av呻吟久久| 久草中文综合在线| 精品一区二区三区免费播放| 久久av资源网| 国内精品国产成人国产三级粉色 | 人人精品人人爱| 夜夜嗨av一区二区三区中文字幕| 国产亚洲欧洲997久久综合| 欧美精品一区二区在线播放| 精品国产免费久久| 久久这里都是精品| 久久精品网站免费观看| 亚洲精品一区二区三区蜜桃下载| 精品国产91乱码一区二区三区| 日韩美女视频一区二区在线观看| 日韩你懂的在线播放| 久久新电视剧免费观看| 精品va天堂亚洲国产| 国产日韩精品一区| 国产精品国产三级国产普通话99| 日韩一区在线看| 夜夜亚洲天天久久| 日日夜夜免费精品视频| 久久99精品国产麻豆婷婷洗澡| 国产一区二区三区香蕉| 欧美大尺度电影在线| 欧美tickling挠脚心丨vk| 久久久精品一品道一区| 亚洲天堂av一区| 亚洲成人自拍一区| 久久99精品久久久| 色悠悠久久综合| 欧美日韩精品高清| 久久久久久麻豆| 亚洲人成7777| 男女性色大片免费观看一区二区 | 九色综合国产一区二区三区| 国产成人免费网站| 欧美性感一区二区三区| 精品国产在天天线2019| 亚洲欧洲精品一区二区三区| 五月激情丁香一区二区三区| 国产黄色精品视频| 欧美日韩国产高清一区二区| 久久久国产一区二区三区四区小说 | 久久er99热精品一区二区| 99久久综合精品| 555www色欧美视频| 国产精品久久久久久久久免费相片| 亚洲国产日韩精品| 国产91精品欧美| 日韩一级成人av| 一区二区日韩电影| 国产成人综合在线| 91精品国产综合久久久蜜臀图片| 国产精品视频麻豆| 免费xxxx性欧美18vr| av电影天堂一区二区在线| 欧美v国产在线一区二区三区| 亚洲另类中文字| 国产成人综合在线观看| 日韩视频一区在线观看| 亚洲综合免费观看高清完整版 | 久久久久高清精品| 美国三级日本三级久久99| 欧美日韩一区国产| 亚洲人亚洲人成电影网站色| 国产一区二区精品久久| 欧美精品三级日韩久久| 亚洲免费观看视频| 成人妖精视频yjsp地址| 久久久精品综合| 麻豆久久久久久| 欧美一级高清片在线观看| 亚洲在线中文字幕| 欧美中文一区二区三区| 亚洲色图视频网站| 成人免费视频视频| 国产精品乱人伦中文| 国产丶欧美丶日本不卡视频| 精品国产乱码久久久久久蜜臀 | 一区二区三区在线视频免费观看| 成人毛片视频在线观看| 国产三级精品三级| 国精产品一区一区三区mba视频| 91精品国产综合久久久久久久 | 久久日韩精品一区二区五区| 精品无人码麻豆乱码1区2区| 欧美日韩成人一区二区| 三级影片在线观看欧美日韩一区二区| 欧美精品一二三区| 免费高清成人在线| 久久伊人中文字幕| 成人午夜精品在线| 亚洲色图视频网站| 欧美日韩一区二区电影| 日韩av网站免费在线| 精品久久一区二区| 成人在线视频一区| 一区二区三区美女视频| 91.com在线观看| 久国产精品韩国三级视频| 久久久久9999亚洲精品| 色婷婷久久久亚洲一区二区三区| 亚洲一区二区在线免费观看视频| 欧美久久久久中文字幕| 经典三级视频一区| 中文字幕亚洲在| 欧美午夜电影在线播放| 午夜视频久久久久久| 欧美大片在线观看一区| 成人免费毛片嘿嘿连载视频| 亚洲午夜久久久久久久久电影院 | 宅男噜噜噜66一区二区66| 另类中文字幕网| 欧美国产禁国产网站cc| 欧美午夜精品久久久| 国产一区啦啦啦在线观看| 亚洲理论在线观看| 精品久久一二三区| 欧美自拍偷拍一区| 国产一区欧美日韩| 亚洲国产成人av网| 国产午夜精品一区二区 | 亚洲电影一区二区| 久久这里都是精品| 欧美日韩国产大片| 成人看片黄a免费看在线| 亚洲国产精品一区二区尤物区| 久久九九影视网| 制服丝袜成人动漫| 色综合色狠狠综合色| 国内成+人亚洲+欧美+综合在线 | 国产主播一区二区| 水野朝阳av一区二区三区| 国产精品久久久久久福利一牛影视| 777久久久精品| 99久久国产综合精品麻豆| 九一九一国产精品| 日本不卡一区二区| 一区二区三区日本| 中文字幕欧美日本乱码一线二线 | 亚洲天堂中文字幕| 久久久久国色av免费看影院| 欧美丰满嫩嫩电影| 欧美在线你懂得| 99re成人在线| 成人免费毛片aaaaa**| 国产福利一区在线| 国产一区在线精品| 国产麻豆9l精品三级站|