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

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

防范SQL指令植入式攻擊
2006-12-12   

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

在設(shè)計或者維護(hù)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 漏洞一樣存在嚴(yán)重的安全隱患。這些潛伏于代碼中的安全隱患就有可能被稱為“SQL 指令植入式攻擊” (SQL injection) 的手段所利用而導(dǎo)致服務(wù)器受到攻擊。

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

某Web 網(wǎng)站采用表單來收集訪問者的用戶名和密碼以確認(rèn)他有足夠權(quán)限訪問某些保密信息,然后該表單被發(fā)送到 Web 服務(wù)器進(jìn)行處理。接下來,服務(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 指令植入式攻擊的理想目標(biāo)。具體而言,設(shè)計者把用戶的輸入直接用于構(gòu)建SQL 指令,從而使攻擊者能夠自行決定即將被執(zhí)行的 SQL 指令。例如:攻擊者可能會在表單的用戶名或密碼欄中輸入包含“ or ”和“=” 等特殊字符。于是,提交給數(shù)據(jù)庫的 SQL 指令就可能是:  代碼:SELECT * FROM tblUsers WHERE Username= or = and Password = or =

這樣,SQL 服務(wù)器將返回 tblUsers 表格中的所有記錄,而 ASP 腳本將會因此而誤認(rèn)為攻擊者的輸入符合 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ù)指定的。例如:當(dāng)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)容。

當(dāng)然了,本例服務(wù)器所受的攻擊不一定會引起什么嚴(yán)重后果??墒牵粽邊s可能變本加厲,比如用同樣的手段發(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)境和配置。當(dāng) Web 服務(wù)器以操作員(dbo)的身份訪問數(shù)據(jù)庫時,利用SQL 指令植入式攻擊就可能刪除所有表格、創(chuàng)建新表格,等等。當(dā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"))

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

為了進(jìn)一步減少SQL 指令植入式攻擊的危脅,請務(wù)必清除客戶端錯誤信息文本中的所有技術(shù)資料。某些錯誤信息往往泄露了技術(shù)細(xì)節(jié),從而讓攻擊者可以看出服務(wù)器的安全漏洞所在。這里指的錯誤信息不但包括應(yīng)用程序生成的消息框,還包括來自 IIS 的出錯提示。為此,你可以禁止由 IIS 發(fā)送的詳細(xì)錯誤信息,而改用自定義的出錯頁面。(關(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)限的帳號,以分散安全漏洞。例如:同是前端用戶界面,當(dāng)用于公共場所時就比用于具有本地內(nèi)容管理機制的平臺時更加需要嚴(yán)格限制數(shù)據(jù)庫訪問權(quán)限。

相關(guān)資料

在 Internet 上有許許多多關(guān)于本話題的有用資源。我想下列連接可能會對你有所幫助:

* SQL Injection FAQ http://www.sqlsecurity.com/)

* Advanced SQL Injection White Paper http://www.nextgenss.com/research.html)

* Preventing SQL Injection http://www.owasp.org/asac/input_validation/sql.shtml)

* Designing Secure Web-Based Applications for Microsoft Windows 2000 http://www.amazon.com/exec/obidos/A...guysfromrollaco),此書值得一看。


熱詞搜索:

上一篇:Mssql和Mysql的安全性分析
下一篇:如何防范網(wǎng)站數(shù)據(jù)庫入侵

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
亚洲午夜日本在线观看| 亚洲精品中文字幕在线观看| 欧洲一区在线电影| 91免费观看国产| 91香蕉视频污在线| 日本韩国欧美一区| 色激情天天射综合网| 在线日韩av片| 欧美亚洲动漫精品| 欧美电影在哪看比较好| 欧美剧在线免费观看网站| 欧美日韩精品欧美日韩精品一| 欧美精品久久久久久久久老牛影院| 欧美男人的天堂一二区| 欧美一级免费观看| 亚洲精品一区二区精华| 国产拍欧美日韩视频二区| 亚洲欧美影音先锋| 午夜精品久久久久久久久久久| 日本中文字幕一区二区有限公司| 久久激五月天综合精品| 成人午夜又粗又硬又大| 91黄色激情网站| 91精品国产91久久久久久一区二区 | 视频一区视频二区中文字幕| 日韩激情视频网站| 成人免费va视频| 欧美亚洲自拍偷拍| 日韩一区二区精品葵司在线| 国产午夜精品美女毛片视频| 亚洲精品免费电影| 九九精品一区二区| 91小视频免费观看| 91精品婷婷国产综合久久竹菊| 国产亚洲美州欧州综合国| 一区二区视频在线| 久久99日本精品| 色婷婷精品久久二区二区蜜臀av| 欧美一区二区在线看| 中文字幕制服丝袜一区二区三区| 午夜精品久久久久久久蜜桃app| 国产二区国产一区在线观看| 欧美美女网站色| 国产精品嫩草久久久久| 麻豆专区一区二区三区四区五区| aaa欧美大片| 亚洲精品在线电影| 图片区小说区区亚洲影院| 大胆欧美人体老妇| 日韩免费成人网| 亚洲一二三四在线| 91捆绑美女网站| 欧美国产欧美综合| 精品一区二区三区香蕉蜜桃| 欧美伊人久久久久久久久影院| 欧美极品另类videosde| 精品中文av资源站在线观看| 欧美中文字幕一区二区三区| 国产精品乱码人人做人人爱| 国产在线播精品第三| 欧美精品一二三四| 午夜影院在线观看欧美| 91老司机福利 在线| 国产精品每日更新| 成人美女视频在线观看18| 精品成人私密视频| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩精品系列| 午夜在线成人av| 欧美日韩在线播| 亚洲综合丝袜美腿| 91黄视频在线| 亚洲电影中文字幕在线观看| 在线观看国产91| 亚洲一区免费视频| 欧美亚洲尤物久久| 丝袜美腿亚洲综合| 欧美一区二区三区视频在线观看 | 国产精品资源在线看| 日韩女优制服丝袜电影| 日韩国产欧美在线观看| 欧美日韩日本视频| 奇米综合一区二区三区精品视频| 欧美一区二区三区在| 精品午夜一区二区三区在线观看| 日韩午夜激情电影| 国产激情精品久久久第一区二区| 国产欧美视频一区二区| 91在线视频在线| 一区二区三区视频在线看| 欧美日韩一本到| 韩国三级电影一区二区| 国产精品丝袜久久久久久app| 91一区在线观看| 午夜精品在线看| 日韩欧美的一区| 成人免费毛片嘿嘿连载视频| 亚洲精选视频在线| 欧美一区二区三区在线电影| 国产成人在线网站| 亚洲欧美另类在线| 欧美一区二区三区在线视频| 国产精品1024久久| 亚洲欧美日韩在线| 在线不卡a资源高清| 国产99精品视频| 亚洲综合激情另类小说区| 欧美一区二区在线免费播放| 国产成人一级电影| 亚洲综合偷拍欧美一区色| 日韩欧美国产1| 色婷婷精品久久二区二区蜜臂av| 青青草视频一区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 日韩精品一级二级 | 91麻豆精品国产91久久久使用方法| 麻豆成人久久精品二区三区红 | 国产偷国产偷亚洲高清人白洁| 99精品欧美一区二区三区小说| 日产欧产美韩系列久久99| 国产精品家庭影院| 日韩欧美一区二区免费| 色综合久久久网| 国产剧情一区二区三区| 亚洲国产精品一区二区尤物区| 久久精品亚洲精品国产欧美 | 国产精品国产三级国产普通话三级 | 国产成人在线视频免费播放| 亚洲国产cao| 亚洲国产高清不卡| 欧美一区二区三区思思人| 99re成人在线| 懂色av中文字幕一区二区三区| 蜜桃av一区二区三区| 亚洲主播在线观看| ●精品国产综合乱码久久久久| 精品第一国产综合精品aⅴ| 欧美丰满少妇xxxbbb| 色婷婷精品大视频在线蜜桃视频| 成人av免费在线观看| 国产一区二区三区精品欧美日韩一区二区三区 | 国产成人午夜高潮毛片| 久久精品久久99精品久久| 午夜精品福利在线| 玉米视频成人免费看| 日韩毛片精品高清免费| 欧美极品另类videosde| 久久视频一区二区| 久久久亚洲精品石原莉奈 | k8久久久一区二区三区 | 最新日韩av在线| 国产精品美女久久久久久久久| 欧美tickling挠脚心丨vk| 欧美视频一区在线观看| 91国偷自产一区二区三区成为亚洲经典 | 午夜激情久久久| 亚洲成人在线网站| 一卡二卡欧美日韩| 亚洲一区二区av电影| 亚洲福利一区二区三区| 五月天丁香久久| 日本欧美在线观看| 国产一区二区剧情av在线| 福利一区在线观看| 成人免费视频一区| 99久久精品一区二区| 色婷婷综合久久久中文一区二区| 色八戒一区二区三区| 欧美喷水一区二区| 精品久久久久久久久久久院品网| 日韩美女在线视频 | 色欧美88888久久久久久影院| 色综合欧美在线视频区| 欧美日本韩国一区| 欧美成人精精品一区二区频| 精品福利在线导航| 中文字幕一区二区三区不卡在线 | 五月婷婷激情综合| 日韩av中文字幕一区二区| 久久99精品国产麻豆不卡| 国v精品久久久网| 在线欧美日韩精品| 欧美白人最猛性xxxxx69交| 国产精品美女久久久久aⅴ | 99久久婷婷国产综合精品电影| 在线观看日产精品| 精品免费一区二区三区| 中文字幕一区二区三区精华液| 日韩精品视频网| 成人在线综合网| 欧美一区二区三区四区久久| 日本一区二区视频在线观看| 亚洲一区二区三区三| 国模套图日韩精品一区二区| 一本一道久久a久久精品| 精品国产自在久精品国产| 伊人一区二区三区| 国产白丝网站精品污在线入口| 欧美日韩精品一区二区三区 | 亚洲图片欧美激情|