Web數(shù)據(jù)庫(kù)系統(tǒng)的安全性分析 計(jì)算機(jī)專(zhuān)業(yè)_第1頁(yè)
Web數(shù)據(jù)庫(kù)系統(tǒng)的安全性分析 計(jì)算機(jī)專(zhuān)業(yè)_第2頁(yè)
Web數(shù)據(jù)庫(kù)系統(tǒng)的安全性分析 計(jì)算機(jī)專(zhuān)業(yè)_第3頁(yè)
Web數(shù)據(jù)庫(kù)系統(tǒng)的安全性分析 計(jì)算機(jī)專(zhuān)業(yè)_第4頁(yè)
Web數(shù)據(jù)庫(kù)系統(tǒng)的安全性分析 計(jì)算機(jī)專(zhuān)業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PAGEPAGE24題目:Web數(shù)據(jù)庫(kù)系統(tǒng)的安全性分析摘要計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)的廣泛應(yīng)用,給信息安全提出了更高的要求,在信息系統(tǒng)開(kāi)發(fā)設(shè)計(jì)過(guò)程中,安全性能總是被放在首要的位置,成為信息系統(tǒng)生存的關(guān)鍵。數(shù)據(jù)庫(kù)是基于WEB信息系統(tǒng)的核心組成部分,面臨來(lái)自外部和內(nèi)部的雙重威脅,對(duì)其進(jìn)行加密等安全處理,是進(jìn)行數(shù)據(jù)保護(hù)的有效手段。本文介紹了幾種流行的Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),同時(shí)針對(duì)Web數(shù)據(jù)庫(kù)的安全問(wèn)題給出了一個(gè)初步的安全模型。關(guān)鍵詞:數(shù)據(jù)庫(kù);Web安全;訪問(wèn)控制

SummaryThewideapplicationsofcomputerandInternettechnologycallforahigherdemandontheinformationsecurity.Intheprocessofexploringanddesigninganinformationsystem,securityhasalwaysbeengiventhefirstpriority,whichiscriticalforthesurvivaloftheinformationsystem.AsthenuclearpartofWEBinformationsystem,databasefacesthedoublethreatscominginternallyandexternally.Dosuchasencryptionsecurityprocessbecomestheeffectivemeansfordataprotection.SeveralpopularaccesstechnologiesareintroducedandaprimarysecuritymodelofWebDatabaseisgiveninthepaper.Keywords:Database;Websafety;accesscontrol

目錄TOC\o"1-4"\h\z\u第一章引言 61.1本課題的研究意義 71.2本論文的目的、內(nèi)容及作者的主要貢獻(xiàn) 7第二章Web數(shù)據(jù)庫(kù)的研究現(xiàn)狀及設(shè)計(jì)目標(biāo) 82.1相近研究課題的特點(diǎn)及優(yōu)缺點(diǎn)分析 82.2現(xiàn)行研究存在的問(wèn)題及解決辦法 82.3本課題要達(dá)到的設(shè)計(jì)目標(biāo) 9第三章Web數(shù)據(jù)庫(kù)的訪問(wèn)技術(shù)及安全分析 103.1Web數(shù)據(jù)庫(kù)的安全威脅 103.2Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù) 123.2.1CGI/API技術(shù) 123.2.2ASP技術(shù) 13ASPWeb數(shù)據(jù)庫(kù)的安全漏洞 14ASPWeb數(shù)據(jù)庫(kù)的安全防護(hù) 153.2.3Java/JDBC技術(shù) 17第四章Web數(shù)據(jù)庫(kù)安全管理技術(shù)與實(shí)現(xiàn) 194.1Web數(shù)據(jù)庫(kù)安全模型 194.2Web數(shù)據(jù)庫(kù)安全管理技術(shù) 194.2.1防火墻技術(shù) 204.2.2身份認(rèn)證和授權(quán)控制 214.2.3監(jiān)視跟蹤和審計(jì) 244.2.4存儲(chǔ)過(guò)程 254.2.5備份與故障恢復(fù) 254.3案例分析 26第五章結(jié)束語(yǔ) 29參考文獻(xiàn) 30鳴謝 32

第一章引言隨著WWW應(yīng)用領(lǐng)域的不斷拓展,人們已不滿足于只用Web服務(wù)器瀏覽和發(fā)布靜態(tài)的信息,人們需要通過(guò)它發(fā)表意見(jiàn)、查詢數(shù)據(jù)甚至進(jìn)行網(wǎng)上購(gòu)物。原來(lái)的靜態(tài)Web頁(yè)面已經(jīng)滿足不了用戶對(duì)信息服務(wù)的動(dòng)態(tài)性、交互性的要求。這就迫切需要實(shí)現(xiàn)Web與數(shù)據(jù)庫(kù)的交互。Web與數(shù)據(jù)庫(kù)這兩者結(jié)合意味Web數(shù)據(jù)庫(kù)將存儲(chǔ)和管理大量重要數(shù)據(jù),然兒一但它們被盜用或篡改,可能會(huì)帶來(lái)巨大的政治和經(jīng)濟(jì)損失?;趶V域網(wǎng)的Web數(shù)據(jù)庫(kù)訪問(wèn)會(huì)帶來(lái)很大的安全問(wèn)題。首先是數(shù)據(jù)庫(kù)的非法訪問(wèn);另一方面數(shù)據(jù)通過(guò)網(wǎng)絡(luò)傳輸,可能被截取、篡改。還有黑客的攻擊可能使系統(tǒng)癱瘓。在動(dòng)態(tài)Web不斷發(fā)展的今天,人們對(duì)其依賴性也越來(lái)越強(qiáng),但由于其開(kāi)放性,在設(shè)計(jì)時(shí)對(duì)與信息的保密和系統(tǒng)的安全考慮不完備,及人們對(duì)保護(hù)數(shù)據(jù)庫(kù)的安全意識(shí)薄弱,造成現(xiàn)在數(shù)據(jù)庫(kù)攻擊與破壞事件層出不窮,給人們的日常生活和經(jīng)濟(jì)活動(dòng)造成了很大麻煩。因此,研究網(wǎng)絡(luò)環(huán)境下的Web數(shù)據(jù)庫(kù)系統(tǒng)的安全保障已經(jīng)成為了重要的課題。自上世紀(jì)九十年代初我國(guó)接入Internet以來(lái),短短十幾年的發(fā)展歷程,我國(guó)上網(wǎng)用戶的總?cè)藬?shù),1997年第一次調(diào)查結(jié)果為62萬(wàn)人,去年年底上升至1.11億人?;ヂ?lián)網(wǎng)的迅速普及,更讓國(guó)內(nèi)電子商務(wù)的發(fā)展水到渠成。但是,在電子商務(wù)快速發(fā)展的同時(shí),網(wǎng)絡(luò)安全的問(wèn)題也始終籠罩在它的頭上。從最新的互聯(lián)網(wǎng)安全威脅報(bào)告看:大約有16%的攻擊是針對(duì)電子商務(wù)的,這表明攻擊者正從以出名為目的轉(zhuǎn)向以獲得經(jīng)濟(jì)利益為目的。保證Web數(shù)據(jù)庫(kù)安全,已是整個(gè)電子商務(wù)系統(tǒng)的當(dāng)務(wù)之急、人心所向。而無(wú)論是B2B還是B2C,Web都是它們最初的也是最基本的界面,由此Web的安全問(wèn)題便突顯出來(lái),它也是整個(gè)網(wǎng)絡(luò)安全首當(dāng)其沖的要害問(wèn)題。何謂Web,通常指的是WWW(WorldWideWeb)的簡(jiǎn)稱,Web最初是以開(kāi)發(fā)一個(gè)人類(lèi)知識(shí)為目的并為某一項(xiàng)目的協(xié)作者提供相關(guān)信息及交流思想的途徑。Web采用了C/S的軟件體系結(jié)構(gòu),為了發(fā)布信息的通用性,Web依賴于共同的尋址句法,共同的協(xié)議集,數(shù)據(jù)格式的協(xié)商處理。由于Web的開(kāi)放性、靈活性以及其空前廣泛的應(yīng)用,Web站點(diǎn)的建立日漸增加。同時(shí),從國(guó)際WWW安全小組CERT(ComouterEmergencyResponseTeam)的統(tǒng)計(jì)資料看,Internet中與Web相關(guān)的安全事故也呈上升趨勢(shì)。為此,W3組織、各大學(xué)、研究機(jī)構(gòu)以及一些公司為了保證Web的安全性,從各種途徑對(duì)其進(jìn)行了廣泛的研究。本課題的研究意義目前Web技術(shù)與數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)相互融合領(lǐng)域的研究已成為熱點(diǎn)方向之一,數(shù)據(jù)庫(kù)廠家和Web公司也紛紛推出各自的產(chǎn)品及中間件來(lái)支持Web技術(shù)和DBMS的融合,將兩者取長(zhǎng)補(bǔ)短,發(fā)揮其各自的優(yōu)勢(shì),使用戶可以在Web瀏覽器上方便地檢索數(shù)據(jù)庫(kù)的內(nèi)容。但由于Internet本身并沒(méi)有提供任何安全機(jī)制,只要Web站點(diǎn)和Internet連通,就可能被任何人訪問(wèn)。用戶已不再受時(shí)間、地域的限制,完全可以不按規(guī)定的操作流程進(jìn)行操作,可以直接輸入地址訪問(wèn)數(shù)據(jù)庫(kù),或隨心所欲地采用標(biāo)簽、超級(jí)鏈接,或頻繁使用Back、Fefresh等操作,對(duì)后臺(tái)數(shù)據(jù)庫(kù)構(gòu)成直接威脅。因此,研究基于Web的數(shù)據(jù)庫(kù)安全技術(shù)對(duì)于信息系統(tǒng)的安全保護(hù)有著重要的現(xiàn)實(shí)意義。本論文的目的、內(nèi)容及作者的主要貢獻(xiàn)在Web數(shù)據(jù)庫(kù)中,大量信息被集中和存儲(chǔ)在數(shù)據(jù)庫(kù)中并且在與Internet相連接的計(jì)算機(jī)和終端之間傳輸。雖然在Web安全性問(wèn)題上國(guó)內(nèi)外已作了研究,但是在重要的數(shù)據(jù)交換行為中,它對(duì)于抵御外界攻擊的能力仍然顯得十分脆弱。本文從介紹幾種流行的Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)出發(fā),針對(duì)Web數(shù)據(jù)庫(kù)的安全問(wèn)題,建立一個(gè)Web數(shù)據(jù)庫(kù)安全體系的初步模型,并對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的安全控制進(jìn)行了詳細(xì)闡述。指出安全問(wèn)題應(yīng)以預(yù)防為主,應(yīng)該在構(gòu)建Web數(shù)據(jù)庫(kù)服務(wù)器時(shí),有意識(shí)地加強(qiáng)數(shù)據(jù)庫(kù)服務(wù)器某方面的防范措施。希望能提高人們對(duì)Web數(shù)據(jù)庫(kù)安全防范的認(rèn)識(shí)。

第二章Web數(shù)據(jù)庫(kù)的研究現(xiàn)狀及設(shè)計(jì)目標(biāo)2.1相近研究課題的特點(diǎn)及優(yōu)缺點(diǎn)分析近年來(lái),人們對(duì)于Web數(shù)據(jù)庫(kù)安全問(wèn)題的關(guān)注呈上升趨勢(shì),但由于其專(zhuān)業(yè)性、復(fù)雜性,Web數(shù)據(jù)庫(kù)的安全防護(hù)并未達(dá)到理想的成果。而對(duì)于其防范措施也是仁者見(jiàn)仁,智者見(jiàn)智。如對(duì)身份認(rèn)證機(jī)制的研究最方便的方法是設(shè)置口令法。在設(shè)置口令的方法中,系統(tǒng)給每個(gè)合法用戶分配一個(gè)唯一的UserID和Password。但是,由于Password的先天不足,其可靠程度極差,容易被他人猜出或測(cè)得。因此,設(shè)置口令法對(duì)安全強(qiáng)度要求比較高的系統(tǒng)不適用。近年來(lái),一些人提出更加有效的身份認(rèn)證技術(shù)。例如智能卡技術(shù),物理特征(指紋,聲紋,手圖等)認(rèn)證技術(shù)等具有高強(qiáng)度的身份認(rèn)證技術(shù)日益成熟,并取得了不少應(yīng)用成果。但由于其技術(shù),經(jīng)濟(jì)等方面的原因并不能普遍推廣。只有一些對(duì)安全強(qiáng)度要求比較高的系統(tǒng),并在一定技術(shù),經(jīng)濟(jì)條件下才會(huì)用到。同時(shí),一些文章也有很多值得我們借鑒的地方。如曾愛(ài)林在《基于Web的網(wǎng)絡(luò)數(shù)據(jù)安全體系的建立與完善》中明了的介紹Web數(shù)據(jù)庫(kù)的幾種訪問(wèn)技術(shù),并針對(duì)Web數(shù)據(jù)庫(kù)的安全問(wèn)題,建立了一個(gè)Web數(shù)據(jù)庫(kù)安全體系的初步模型,指出安全問(wèn)題應(yīng)以預(yù)防為主,應(yīng)該在構(gòu)建Web數(shù)據(jù)庫(kù)服務(wù)器時(shí),及時(shí)進(jìn)行漏洞檢測(cè)、風(fēng)險(xiǎn)評(píng)估,根據(jù)檢測(cè)結(jié)果,有意識(shí)地加強(qiáng)數(shù)據(jù)庫(kù)服務(wù)器某方面的防范措施。竇麗華,蔣慶華,等人在《基于Web的信息系統(tǒng)安全研究》中研究了基于Web的信息系統(tǒng)的安全問(wèn)題及如何充分并合理地利用操作系統(tǒng)、Web服務(wù)器和數(shù)據(jù)庫(kù)管理系統(tǒng)所提供的安全設(shè)置,以有效地保證信息系統(tǒng)的安全性。利用應(yīng)用程序所具有的靈活性,可以彌補(bǔ)操作系統(tǒng)、Web服務(wù)器和數(shù)據(jù)庫(kù)管理系統(tǒng)的安全漏洞,結(jié)合某單位業(yè)務(wù)信息系統(tǒng)的案例,分別從操作系統(tǒng)、Web服務(wù)器、數(shù)據(jù)庫(kù)管理系統(tǒng)、應(yīng)用程序4個(gè)方面對(duì)安全問(wèn)題進(jìn)行分析,同時(shí)給出了建議。Web數(shù)據(jù)庫(kù)的安全防護(hù)是一條長(zhǎng)遠(yuǎn)的路,只有通過(guò)不斷地改進(jìn)和完善,不斷地實(shí)踐,才能有效的防范入侵。2.2現(xiàn)行研究存在的問(wèn)題及解決辦法Web數(shù)據(jù)庫(kù)的安全是一個(gè)系統(tǒng)性,綜合性的問(wèn)題,而且其涉及的范圍很廣,因此,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí)不能將它孤立考慮,只有結(jié)合實(shí)際層層設(shè)防,這個(gè)問(wèn)題才能得到有效的解決。實(shí)際上,任何一層的安全僅利用一種安全技術(shù)都不可能提供所有安全服務(wù)和抵抗所有可能攻擊,任何一個(gè)實(shí)際的系統(tǒng)也不可能采用過(guò)多的安全策略。任何安全措施都是相對(duì)的,只能根據(jù)具體的應(yīng)用對(duì)象,權(quán)衡安全要求與所需花費(fèi)的代價(jià)來(lái)進(jìn)行選擇適當(dāng)?shù)陌踩呗?。還應(yīng)看到,和其它技術(shù)一樣,入侵者的手段也在不斷提高。安全防范是一個(gè)永久性的問(wèn)題,只有通過(guò)不斷地改進(jìn)和完善安全手段,才能保證系統(tǒng)的正常運(yùn)行,才能提高系統(tǒng)的可靠性。2.3本課題要達(dá)到的設(shè)計(jì)目標(biāo)數(shù)據(jù)庫(kù)系統(tǒng)主要是為用戶提供完善方便的信息和數(shù)據(jù)服務(wù),實(shí)現(xiàn)數(shù)據(jù)信息的共享。設(shè)計(jì)數(shù)據(jù)庫(kù)安全系統(tǒng)的目的,是要合理有效地解決數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息的共享問(wèn)題。在安全的數(shù)據(jù)庫(kù)中,既要保證授權(quán)的合法用戶對(duì)數(shù)據(jù)的有效存取,又能?chē)?yán)格拒絕非法用戶的攻擊企圖。具體地說(shuō),數(shù)據(jù)庫(kù)安全系統(tǒng)的設(shè)計(jì)目標(biāo)主要有以下3個(gè)方面:(1)數(shù)據(jù)的完整性數(shù)據(jù)的完整性指數(shù)據(jù)的正確性、一致性和相容性。系統(tǒng)只允許授權(quán)的合法用戶存取數(shù)據(jù)庫(kù)中的數(shù)據(jù)信息,并且以不破壞數(shù)據(jù)的完整性為前提。同時(shí),系統(tǒng)應(yīng)該杜絕非法用戶對(duì)數(shù)據(jù)信息進(jìn)行任何存取操作,主要包括竊取和破壞。由于多個(gè)程序并發(fā)存取同一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù),可能會(huì)造成數(shù)據(jù)的不一致性。因此,安全系統(tǒng)要具有保證數(shù)據(jù)一致性的功能。(2)數(shù)據(jù)的可用性當(dāng)系統(tǒng)授權(quán)的合法用戶申請(qǐng)存取有權(quán)存取的數(shù)據(jù)時(shí),安全系統(tǒng)應(yīng)該盡量減小對(duì)合法操作的影響。換句話說(shuō),采用的安全機(jī)制不能明顯降低數(shù)據(jù)庫(kù)系統(tǒng)的操作性能。(3)數(shù)據(jù)的保密性安全系統(tǒng)應(yīng)該提供一個(gè)高強(qiáng)度的加密方案,對(duì)數(shù)據(jù)庫(kù)中的機(jī)敏數(shù)據(jù)進(jìn)行加密處理。只有當(dāng)系統(tǒng)的合法用戶訪問(wèn)有權(quán)訪問(wèn)的數(shù)據(jù)時(shí),系統(tǒng)才把相應(yīng)的數(shù)據(jù)進(jìn)行解密操作;否則,系統(tǒng)應(yīng)保持機(jī)敏數(shù)據(jù)的加密狀態(tài),以防止非法用戶竊取到明文信息,對(duì)系統(tǒng)進(jìn)行攻擊。

第三章Web數(shù)據(jù)庫(kù)的訪問(wèn)技術(shù)及安全分析3.1Web數(shù)據(jù)庫(kù)的安全威脅為了讓數(shù)據(jù)庫(kù)能為處于網(wǎng)絡(luò)上的用戶服務(wù)而暴露在網(wǎng)絡(luò)中,網(wǎng)絡(luò)上的任何用戶都可以訪問(wèn)這個(gè)數(shù)據(jù)庫(kù),這種情況下對(duì)數(shù)據(jù)庫(kù)訪問(wèn)的控制只能通過(guò)用戶控制既用戶名/密碼來(lái)進(jìn)行。任何知道密碼的用戶都可以訪問(wèn),這增加了密碼保護(hù)管理的難度,同時(shí)用戶名/密碼通過(guò)Internet傳輸很容易被人竊取。其次,數(shù)據(jù)應(yīng)用放讀取的數(shù)據(jù)是通過(guò)Web傳輸,而這些數(shù)據(jù)缺乏有效的安全措施保護(hù),從而可能被截取、篡改。另外,Web數(shù)據(jù)庫(kù)中存儲(chǔ)著大量的數(shù)據(jù)信息,往往成為信息系統(tǒng)的關(guān)鍵,這就需要數(shù)據(jù)庫(kù)及數(shù)據(jù)庫(kù)所在的計(jì)算機(jī)能夠安全運(yùn)行。數(shù)據(jù)庫(kù)放在Internet中很容易受到黑客的各種攻擊。隨著網(wǎng)絡(luò)信息系統(tǒng)的應(yīng)用,數(shù)據(jù)庫(kù)遠(yuǎn)程訪問(wèn)的安全問(wèn)題日益突出。這個(gè)問(wèn)題可采用網(wǎng)絡(luò)傳輸加密,用戶身份認(rèn)證等安全措施解決。但由于日前的主流數(shù)據(jù)的網(wǎng)絡(luò)傳輸部分都由數(shù)據(jù)庫(kù)廠家來(lái)完成,恰恰缺少這些安全措施,因此上述安全技術(shù)在普通的數(shù)據(jù)庫(kù)系統(tǒng)中難以直接應(yīng)用。另外利用操作系統(tǒng)和數(shù)據(jù)庫(kù)管理系統(tǒng)提供的安全保護(hù)功能是常用的數(shù)據(jù)庫(kù)安全解決方案。但是Internet本身并沒(méi)有提供任何安全機(jī)制,只要Web站點(diǎn)和Internet連通,就可能被任何人訪問(wèn)。Web數(shù)據(jù)庫(kù)受到的威脅大致包括泄漏、竊取、竄改、冒充、延遲、重傳、遺失、越權(quán)存取數(shù)據(jù)、否認(rèn)已收送數(shù)據(jù)及侵犯隱私權(quán)等。例如用ASP+Access的主要安全隱患來(lái)自Access數(shù)據(jù)庫(kù)有可能被下載的漏洞。用Access做后臺(tái)數(shù)據(jù)庫(kù)時(shí),如果不對(duì)Access(*.mdb)的路徑和數(shù)據(jù)庫(kù)名稱進(jìn)行安全設(shè)置,那么該數(shù)據(jù)庫(kù)就有被竊取下載的可能?,F(xiàn)實(shí)生活中許多使用者為了記憶方便,各種證卡習(xí)慣性地使用同一密碼,如果被下載的Access的信息放有用戶名稱、密碼口令、資金帳戶等重要信息,一旦一個(gè)密碼泄漏,將會(huì)波及其它密碼失效,甚至?xí)o用戶帶來(lái)重大損失,這非常危險(xiǎn)。Access安全威脅主要有以下幾個(gè)原因:(1)Access數(shù)據(jù)庫(kù)地址、路徑過(guò)于簡(jiǎn)單Access數(shù)據(jù)庫(kù)被下載,主要是存放數(shù)據(jù)庫(kù)的路徑和數(shù)據(jù)庫(kù)名稱被獲知。一般情況下,網(wǎng)絡(luò)黑客先從網(wǎng)站的普通訪問(wèn)中得到“用戶網(wǎng)站主IP地址”,然后,通過(guò)訪問(wèn)有數(shù)據(jù)庫(kù)交互功能的下級(jí)子目錄(例如通過(guò)表單等),推斷到存有數(shù)據(jù)庫(kù)文件的有效路徑(顯示在地址欄里),再通過(guò)查看源代碼獲知數(shù)據(jù)庫(kù)文件名(點(diǎn)鼠標(biāo)右鍵即可),然后在地址欄里輸入含*.mdb的地址就可得到Access數(shù)據(jù)庫(kù),從而獲得數(shù)據(jù)表信息。例如,用戶建立的yuangong.mdb(員工人事信息庫(kù))放在虛擬目錄/work下,如果沒(méi)有事先對(duì)yuangong.mdb進(jìn)行安全加密處理,那么在瀏覽器的地址欄鍵入:“http://用戶網(wǎng)站主IP地址/work/yuangong.mdb”,yuangong.mdb整個(gè)文件就會(huì)被輕易下載。文件中所有的重要數(shù)據(jù)信息就會(huì)被別人輕易竊取。(2)使用網(wǎng)絡(luò)免費(fèi)軟件所導(dǎo)致的數(shù)據(jù)安全問(wèn)題由于許多網(wǎng)絡(luò)管員沒(méi)有足夠的時(shí)間與精力開(kāi)發(fā)具有針對(duì)性的應(yīng)用程序,如聊天室、bbs論壇、留言板、網(wǎng)絡(luò)Office辦公軟件等,而多是采用直接從網(wǎng)上下載的方法來(lái)滿足急用。這些程序的源代碼多是公開(kāi)的,所使用的數(shù)據(jù)庫(kù)名、存放路徑基本無(wú)秘密可言,如果安全措施不力,不加處理就拿來(lái)使用,會(huì)給數(shù)據(jù)庫(kù)的安全帶來(lái)非常大的危險(xiǎn)。(3)服務(wù)器操作系統(tǒng)的安全隱患現(xiàn)在使用WindowsNT/2000Server作為服務(wù)器操作系統(tǒng)的用戶非常主流,由于Windows2000Server目錄權(quán)限的默認(rèn)設(shè)置安全性較差。很多網(wǎng)管只知道讓W(xué)eb服務(wù)器運(yùn)行起來(lái),很少對(duì)NTFS進(jìn)行權(quán)限設(shè)置,有的服務(wù)器甚至未禁止對(duì)文件目錄的訪問(wèn)控制,因此,必然會(huì)帶來(lái)很大安全漏洞。如果使用FAT分區(qū),那么ASP程序中的FileAccess組件的FileSystemObiect對(duì)象就可以對(duì)大部分文件(主要是文本文件)進(jìn)行讀寫(xiě)、目錄操作、文件復(fù)制、更名、刪除、修改,還可以下載FAT分區(qū)上的任何文件。由于ASP程序采用的是非編譯性語(yǔ)言,程序源代碼的安全性非常低,任何人只要進(jìn)入站點(diǎn),就可以獲得源代碼,從而造成ASP應(yīng)用程序源代碼的泄露。(4)程序設(shè)計(jì)中的安全隱患大多數(shù)ASP程序利用表單(Form)實(shí)現(xiàn)與用戶交互的功能,而相應(yīng)的內(nèi)容會(huì)反映在瀏覽器的地址欄中,如果不采用適當(dāng)?shù)陌踩胧?,只要記下這些內(nèi)容,就可以繞過(guò)驗(yàn)證,直接進(jìn)入某一頁(yè)面。例如在瀏覽器中鍵入“……some.ASP?id=1”,即可不經(jīng)過(guò)表單頁(yè)面直接進(jìn)入滿足“id=1”條件的頁(yè)面。因此,在設(shè)計(jì)驗(yàn)證或注冊(cè)頁(yè)面時(shí),必須采取特殊措施來(lái)避免此類(lèi)問(wèn)題的發(fā)生,以提高數(shù)據(jù)庫(kù)的安全性。有的設(shè)計(jì)者出于安全考慮,將ASP應(yīng)用程序中Access的連接語(yǔ)句另外存取,命名為conn.inc,其代碼為:<!--#includefile="conn.inc"-->認(rèn)為這樣以來(lái)Access數(shù)據(jù)庫(kù)就轉(zhuǎn)藏起來(lái),客戶端就得不到數(shù)據(jù)庫(kù)的真實(shí)路徑和名稱,其實(shí).inc文件通過(guò)網(wǎng)絡(luò)也很容易被下載,即使對(duì)Access所在文件夾做了變動(dòng),文件路徑也會(huì)暴露無(wú)疑。3.2Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)Web是目前Internet上發(fā)展最快也是Internet網(wǎng)上最重要的信息檢索手段。為了進(jìn)行網(wǎng)上數(shù)據(jù)的高效存取,實(shí)現(xiàn)交互動(dòng)態(tài)Web頁(yè)面,就必須以大量數(shù)據(jù)資源為基礎(chǔ),因此必然要引入數(shù)據(jù)庫(kù)系統(tǒng),于是出現(xiàn)了Web數(shù)據(jù)庫(kù)。許多數(shù)據(jù)庫(kù)和WWW商家都把數(shù)據(jù)庫(kù)與Web的連接性作為發(fā)展戰(zhàn)略的一個(gè)重要組成部分。3.2.1CGI/API技術(shù)通用網(wǎng)關(guān)接口,是一種使用最早的Web數(shù)據(jù)庫(kù)連接技術(shù),它作為Web服務(wù)器與數(shù)據(jù)庫(kù)服務(wù)器的中間件,負(fù)責(zé)管理兩者的通信并提供應(yīng)用程序服務(wù)。用戶使用Web瀏覽器以THML形式向Web服務(wù)器提出訪問(wèn)數(shù)據(jù)庫(kù)的請(qǐng)求,Web服務(wù)器收到請(qǐng)求后,通過(guò)CGI將HTML轉(zhuǎn)化為SQL來(lái)訪問(wèn)Web數(shù)據(jù)庫(kù),查詢結(jié)果再通過(guò)CGI轉(zhuǎn)化為HTML形式,送回瀏覽器。從而完成瀏覽器與數(shù)據(jù)庫(kù)的交互。針對(duì)CGI的低效問(wèn)題,人們有開(kāi)發(fā)了API(ApplicationProgrammingInterface),API通常以動(dòng)態(tài)連接庫(kù)(DLL)的方式提供,駐留在Web服務(wù)器上的程序,作用與CGI相似,擴(kuò)展Web服務(wù)器的功能,其連接模型見(jiàn)圖1。WebAPI技術(shù)最大特點(diǎn)是與Web服務(wù)器處于同一地址空間,因此執(zhí)行效率比較高。Web瀏覽器Web瀏覽器數(shù)據(jù)庫(kù)CGI/API中間件Web服務(wù)器圖1CGI/APIWeb數(shù)據(jù)庫(kù)連接模型按Web數(shù)據(jù)庫(kù)漏洞的成因大致分為:(1)配置不當(dāng)而形成的Web數(shù)據(jù)庫(kù)漏洞大多數(shù)的Web服務(wù)器都提供有兩種方式存儲(chǔ)CGI/API程序:將CGI/API程序統(tǒng)一保存在一個(gè)特定目錄下;將CGI/API程序與HTML文檔及圖像一并存放。由于HTML文檔可直接被用戶訪問(wèn),因此如果以第二種方式存儲(chǔ)CGI/API程序,就有可能讓用戶閱讀或下載CGI/API程序從而達(dá)到被其利用的目的。(2)編寫(xiě)CGI/API程序語(yǔ)言自身缺陷導(dǎo)致的Web數(shù)據(jù)庫(kù)安全隱患目前編寫(xiě)CGI/API程序的語(yǔ)言主要有Shell腳本、Perl腳本和C語(yǔ)言。C語(yǔ)言對(duì)串的處理功能不強(qiáng)。在處理串時(shí)一般是建立一個(gè)預(yù)定義空間來(lái)收集用戶的輸入。當(dāng)用戶的輸入數(shù)據(jù)越界時(shí)容易造成緩沖區(qū)溢出。(3)過(guò)分相信用戶的輸入信息而形成的Web數(shù)據(jù)庫(kù)漏洞在許多考慮不全的CGI/API程序中,總是期待用戶輸入的數(shù)據(jù)是按照預(yù)期格式定義的和可預(yù)料的。但是,用戶的輸入存在多種繞過(guò)這些預(yù)定義格式的可能,而給腳本發(fā)送一些隨機(jī)的數(shù)據(jù)。(4)CGI/API程序中沒(méi)有過(guò)濾掉某些特殊字符而形成的安全漏洞例如,沒(méi)有過(guò)濾“../”,易泄露系統(tǒng)文件;沒(méi)有過(guò)濾“$”,易導(dǎo)致網(wǎng)頁(yè)中的敏感信息泄露等。3.2.2ASP技術(shù)ASP(ActiveServerPage)技術(shù)是Microsoft開(kāi)發(fā)的新技術(shù),它結(jié)合了CGI程序和API技術(shù)的優(yōu)點(diǎn),把HTML,Script,ActiveX組件有機(jī)的結(jié)合起來(lái),生成交互性,高效率的Web服務(wù)器應(yīng)用程序。ASP腳本可以多種方式訪問(wèn)數(shù)據(jù)庫(kù),使用最多的是ADO(ActiveDataObject)方式。在這種方式中,ASP對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)主要是通過(guò)內(nèi)置對(duì)象DAC(DatabaseAccessComponent)使用數(shù)據(jù)庫(kù)訪問(wèn)軟件SDO來(lái)實(shí)現(xiàn)的,可以實(shí)現(xiàn)與任何ODBC兼容數(shù)據(jù)庫(kù)或OLEDB數(shù)據(jù)源的高性能連接。ADO允許網(wǎng)絡(luò)開(kāi)發(fā)者方便地將一個(gè)DB與一個(gè)“激活”的網(wǎng)頁(yè)相連接,以便存取和操作數(shù)據(jù)。ASP應(yīng)用程序是在服務(wù)器端運(yùn)行,而不是在瀏覽器運(yùn)行,實(shí)現(xiàn)了ASP的瀏覽器的無(wú)關(guān)性。Web瀏覽器Web瀏覽器ASPDLL數(shù)據(jù)庫(kù)HTML頁(yè)面ASPHTTPPADOODBC圖2ASPWeb數(shù)據(jù)庫(kù)連接模型ASPWeb數(shù)據(jù)庫(kù)的安全漏洞(1)ACCESS數(shù)據(jù)庫(kù)被下載的漏洞通常用戶可猜到服務(wù)器的數(shù)據(jù)庫(kù)的名字和路徑,那將是一個(gè)非常可怕事情,因?yàn)楹芏嗑W(wǎng)站習(xí)慣把用戶注冊(cè)的信息和密碼放在數(shù)據(jù)中,一旦補(bǔ)攻擊者下載,會(huì)給網(wǎng)站造成不可估量的損失。如下即可下載數(shù)據(jù)庫(kù)aa.mdb/aa.mdb(2)引號(hào)造成的漏洞很多網(wǎng)站把注冊(cè)用戶名和密碼放到數(shù)據(jù)庫(kù)中,在登錄程序中用以下SQL語(yǔ)句來(lái)查詢數(shù)據(jù)庫(kù)以核對(duì)數(shù)據(jù)。<%dimconn,rsSetconn=Server.CreateObject("ADODB.Connection")conn.Open"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath("test1.mdb")setrs=server.createobject("adodb.recordset")rs.locktype=3rs.cursortype=0No=Request("password")Name=Request("userName")rs.open"Select*FromuserWhere密碼='"&No&"'And姓名='"&Name&"'",connIfrsIsNothingThen...EndIf...%>此時(shí),攻擊者只要構(gòu)造一個(gè)這樣的密:nihao'or'1'=1,那可通過(guò)數(shù)據(jù)驗(yàn)證。為什么呢?請(qǐng)看最后生成的查詢語(yǔ)句就知到了。rs.open"Select*FromuserWhere密碼='nihao'or'1'='1'And姓名='"&Name&"'",conn'1'='1'永遠(yuǎn)為T(mén)RUE所以通過(guò)了驗(yàn)證。(3)URL直接請(qǐng)求漏洞如果攻擊者知道了一個(gè)ASP頁(yè)面的路徑和文件名,而這個(gè)文件又要經(jīng)過(guò)驗(yàn)證才能進(jìn)入,但是用戶直接請(qǐng)求包含ASP文件路徑和文件名的URL,則有可能進(jìn)入到該頁(yè)面。/sunli.asp甚至攻擊者可以偽造一些參數(shù)掛靠在URL后面形成一個(gè)GET類(lèi)型的HTTP請(qǐng)求,而服務(wù)器端正好是使用Querystring環(huán)境變量來(lái)采集數(shù)據(jù)或者根本沒(méi)有指定接受數(shù)據(jù)的方式,用戶偽造的參數(shù)即被服務(wù)器端驗(yàn)證。通常攻擊的這個(gè)文件在網(wǎng)站中并沒(méi)有提供鏈接,是系統(tǒng)維護(hù)員遠(yuǎn)程操作的入口。/sunli.asp?username=jacky&password=password采用上面介紹的特殊用戶名的密碼構(gòu)造方式,就有可能入侵到本來(lái)只有系統(tǒng)管理員才可以進(jìn)入的頁(yè)面。ASPWeb數(shù)據(jù)庫(kù)的安全防護(hù)(1)防護(hù)Access數(shù)據(jù)庫(kù)被下載的漏洞解決這個(gè)漏洞的方法是使用不規(guī)則的數(shù)據(jù)庫(kù)名字和路徑。首先,為你的數(shù)據(jù)庫(kù)文件名稱起個(gè)復(fù)雜的不規(guī)則的名字,并把他放在多級(jí)目錄下。程序員在設(shè)計(jì)網(wǎng)站數(shù)據(jù)庫(kù)時(shí),經(jīng)常會(huì)不自覺(jué)地給數(shù)據(jù)庫(kù)起一個(gè)與網(wǎng)站主題非常接近的名字,這就給攻擊者留下了可以乘之機(jī)。如:一個(gè)賣(mài)東西的網(wǎng)上購(gòu)物網(wǎng)站,其后臺(tái)數(shù)據(jù)庫(kù)起名為shopping.mdb或者ebuy.mdb等可能會(huì)被攻擊者猜測(cè)出的名字。具有比較好的保密性的文件名一般要包括一些特殊的字符,如字母和數(shù)字的混合等。盡量不要使用規(guī)則的單詞或者單詞的組合作為數(shù)據(jù)庫(kù)及其他需要保密的文件的文件名。例如,給你的數(shù)據(jù)庫(kù)起名為ax35t7x.mdb,這樣的文件名攻擊者就很難猜出來(lái)。其次,把數(shù)據(jù)庫(kù)文件放到多級(jí)目錄之下,目錄名稱也盡量不要太規(guī)則。有的程序員喜歡把網(wǎng)站的各類(lèi)文件分門(mén)別類(lèi)地放置在不同的文件夾之下,并且給這些文件夾起一個(gè)能代表其中所放置的文件屬性的名字。如:把數(shù)據(jù)庫(kù)文件放置在\database\some.mdb,這也很容易被攻擊者猜測(cè)出來(lái)。因此,像數(shù)據(jù)庫(kù)這類(lèi)需要特別注意安全性的文件盡量不要放在含義明顯的文件夾之下,適當(dāng)?shù)貥?gòu)造一些不規(guī)則的文件目錄,然后把數(shù)據(jù)庫(kù)文件放到用戶所構(gòu)造的多級(jí)不規(guī)則目錄之下。例如,把數(shù)據(jù)庫(kù)文件放到:\ddaa9\iop76\ss5y6\some.mdb,這樣攻擊者要想通過(guò)猜測(cè)來(lái)獲得數(shù)據(jù)庫(kù)的名字和路徑就非常的難。(2)防護(hù)引號(hào)造成的漏洞解決這個(gè)漏洞的方法是修改單引號(hào)的使用。對(duì)SQL語(yǔ)句中的單引號(hào)進(jìn)行修改,使用像下面的函數(shù)來(lái)轉(zhuǎn)換。Functionsqlstr(data)Sqlstr="'"&Replace(data,"'","''")&"'"Endfunction把SQL中可能存在的單引號(hào)換成雙單引號(hào)連用的形式,這就避免了因單引號(hào)的前后匹配造成的攻擊者饒過(guò)用戶名和密碼驗(yàn)證的漏洞。通常這樣使用這個(gè)函數(shù):sql="select*fromuserwhereusername="sql=sql&sqlstr(username)%>這樣,即使攻擊者構(gòu)造了諸如'nihao'or'1'='1'這樣的用戶名或者密碼,經(jīng)過(guò)sqlstr函數(shù)的運(yùn)算,其結(jié)果為:rs.open"Select*FromuserWhere密碼='nihao''or密碼'1'<>'1'And姓名='"&Name&"'0,conn這樣就不會(huì)產(chǎn)生因or運(yùn)算符導(dǎo)致SQL判斷永遠(yuǎn)為true的情況。(3)防護(hù)URL直接請(qǐng)求漏洞解決這個(gè)漏洞的方法是使用附加的檢驗(yàn)程序結(jié)合特殊的Session變量值。通常重要的頁(yè)面在進(jìn)入之前需要用戶名和口令的驗(yàn)證,可以把這個(gè)驗(yàn)證的程序做在真正的頁(yè)面之前。如果在驗(yàn)證的程序中通過(guò)了用戶的用戶名和口令,則使用Session變量記錄下用戶輸入的用戶名和口令,如Session("h9as3u8")=username&password,這個(gè)Session變量的名字很怪,一般來(lái)說(shuō)攻擊者是猜不到的。通過(guò)用戶的用戶名和口令之后,再使用Response對(duì)象的Redirect方法重定向到重要的頁(yè)面。在這個(gè)重要頁(yè)面的開(kāi)頭再次檢驗(yàn)Session變量的值,其值不僅要求非空,而且要求是由特定的用戶名/密碼組合成的字符串。如果發(fā)現(xiàn)不符合的情況,立即終止程序的執(zhí)行(使用Response.end方法)或者顯示警告的信息。3.2.3Java/JDBC技術(shù)Java是SUN公司發(fā)布的一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,它以其獨(dú)特的平臺(tái)獨(dú)立性、穩(wěn)固性、安全性以及對(duì)網(wǎng)絡(luò)提供的良好支持而成為Web數(shù)據(jù)庫(kù)的一個(gè)強(qiáng)有力的開(kāi)發(fā)工具。Java語(yǔ)言的標(biāo)準(zhǔn)開(kāi)發(fā)包中包含了一套抽象窗口工具庫(kù)AWT(abstractwindowstoolkit),使用應(yīng)用程序的界面風(fēng)格在Windows、Mac和XWindows系統(tǒng)中可以保持一致。Java語(yǔ)言編制的Applet程序易于在網(wǎng)上傳輸,它可以在客戶機(jī)端運(yùn)行而不會(huì)引起安全問(wèn)題。Java語(yǔ)言中提供的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)稱為JDBC,它是JavaSoft公司設(shè)計(jì)第一個(gè)支持Java語(yǔ)言的標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)API。它與微軟公司的ODBC(opendatabaseconnectivity)在概念和標(biāo)準(zhǔn)上有相似之處,也是提供對(duì)各種關(guān)系型數(shù)據(jù)庫(kù)的無(wú)縫連接。JDBCAPI由SUN公司的JavaSoft子公司開(kāi)發(fā),是一個(gè)標(biāo)準(zhǔn)統(tǒng)一的SQL數(shù)據(jù)存取接口。它由Java類(lèi)組成,這些類(lèi)代表數(shù)據(jù)連接、SQL語(yǔ)句和結(jié)果集等等,它們?cè)试SJava應(yīng)用程序把SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)服務(wù)器并接受和處理結(jié)果集。JDBC機(jī)制與WebAPI和專(zhuān)用數(shù)據(jù)庫(kù)WebServer有所不同:在客戶機(jī)上運(yùn)行的JavaApplet程序可以繞過(guò)Web服務(wù)器,直接和數(shù)據(jù)庫(kù)服務(wù)器連接,并直接把結(jié)果返回給客戶機(jī)瀏覽器,以節(jié)省中間層的處理時(shí)間。Java/JDBC接口訪問(wèn)數(shù)據(jù)庫(kù)。目前絕大多數(shù)瀏覽器都支持Java開(kāi)發(fā)接口程序,對(duì)軟件配置沒(méi)有過(guò)多的要求,只需要安裝JDBS驅(qū)動(dòng)程序就可以了。因此使用Java/JDBC編寫(xiě)數(shù)據(jù)庫(kù)接口程序在滿足移植性通用性擴(kuò)展能力等方面具有優(yōu)勢(shì)。Web瀏覽器Web瀏覽器Web服務(wù)器JavaApplet數(shù)據(jù)庫(kù)HTTP圖3JDBCWeb數(shù)據(jù)庫(kù)連接模型以上是幾種代表性的Web數(shù)據(jù)庫(kù)連接技術(shù)。還有一些其它的連接技術(shù),比如,RAD,ObjectWeb,PHP等等,在此不一一列舉。

第四章Web數(shù)據(jù)庫(kù)安全管理技術(shù)與實(shí)現(xiàn)4.1Web數(shù)據(jù)庫(kù)安全模型Web數(shù)據(jù)庫(kù)安全威脅涉及許多方面,個(gè)人認(rèn)為安全措施應(yīng)綜合考慮,具體可以采用下列技術(shù)措施:(1)安裝防火墻;(2)身份認(rèn)證和數(shù)據(jù)完整性認(rèn)證服務(wù);(3)對(duì)機(jī)密敏感的數(shù)據(jù)進(jìn)行加密存儲(chǔ)和傳輸;(4)訪問(wèn)控制機(jī)制;(5)安全審計(jì)和監(jiān)視追蹤技術(shù);(6)數(shù)據(jù)庫(kù)備份與故障恢復(fù)。Web數(shù)據(jù)庫(kù)安全模型見(jiàn)圖1。防火墻防火墻用戶認(rèn)證服務(wù)Web數(shù)據(jù)庫(kù)服務(wù)器數(shù)據(jù)加密訪問(wèn)控制審計(jì)備份圖4Web數(shù)據(jù)庫(kù)安全模型基于Web的管理信息系統(tǒng)采用的是3層Client/Server結(jié)構(gòu),即瀏覽器/Web服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器結(jié)構(gòu)。在采用ASP技術(shù)與數(shù)據(jù)庫(kù)連接的系統(tǒng)中,瀏覽器和Web服務(wù)器采用HTTP協(xié)議彼此通信。用戶執(zhí)行基于Web的數(shù)據(jù)庫(kù)應(yīng)用程序,在瀏覽器端發(fā)出對(duì)某一數(shù)據(jù)庫(kù)文件的請(qǐng)求,Web服務(wù)器接收到請(qǐng)求,不是直接通過(guò)應(yīng)用程序訪問(wèn)數(shù)據(jù)庫(kù),而是激活A(yù)SP進(jìn)行各級(jí)安全性檢測(cè)。ASP利用ADO在服務(wù)器端創(chuàng)建連接對(duì)象,通過(guò)ODBC訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù)保存的用戶基本信息進(jìn)行用戶鑒定,拒絕非法用戶訪問(wèn)請(qǐng)求,對(duì)合法用戶根據(jù)其權(quán)限存取數(shù)據(jù)并返回處理結(jié)果。因此,根據(jù)基于Web的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的特點(diǎn),可以采用安裝防火墻,用戶身份認(rèn)證和數(shù)據(jù)完整性認(rèn)證服務(wù),對(duì)機(jī)密敏感的數(shù)據(jù)進(jìn)行加密存儲(chǔ)和傳輸,訪問(wèn)控制機(jī)制,安全審計(jì)和監(jiān)視追蹤技術(shù),數(shù)據(jù)庫(kù)備份與故障恢復(fù)等安全管理結(jié)束來(lái)構(gòu)筑管理信息系統(tǒng)的安全體系。4.2Web數(shù)據(jù)庫(kù)安全管理技術(shù)構(gòu)筑安全可靠的Web數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)要從兩個(gè)方面考慮。首先要對(duì)構(gòu)筑Web數(shù)據(jù)庫(kù)的工作環(huán)境進(jìn)行合理系統(tǒng)的安全配置,防止非法人員攻擊Web站點(diǎn)。這方面包括操作系統(tǒng)的安全問(wèn)題、數(shù)據(jù)庫(kù)服務(wù)器的安全性、Web服務(wù)器的安全性以及如何有效的配置防火墻。只有將它們有機(jī)的結(jié)合起來(lái),才能使Web數(shù)據(jù)庫(kù)建立在安全的工作環(huán)境中。其次要在編制Web數(shù)據(jù)庫(kù)應(yīng)用程序時(shí),充分考慮安全性和容錯(cuò)性能,以及在不同情況下應(yīng)付不同行為的能力。這方面包括設(shè)置登錄Web數(shù)據(jù)庫(kù)站點(diǎn)的用戶名和口令;為不同級(jí)別的用戶設(shè)定不同的操作權(quán)限,訪問(wèn)各自的數(shù)據(jù)庫(kù);一旦受到攻擊,能有效地記錄是哪個(gè)用戶什么時(shí)候侵入的;在服務(wù)器和客戶器端建立安全有效的傳輸通道;在傳輸過(guò)程中對(duì)數(shù)據(jù)進(jìn)行加密;通過(guò)數(shù)字簽名來(lái)驗(yàn)證用戶的真實(shí)性等。以上幾方面不是孤立的,而是相互聯(lián)系的,所以必須結(jié)合起來(lái)從多方面多層次考慮才能更好地構(gòu)筑安全可靠的Web數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)。4.2.1防火墻技術(shù)防火墻(Firewall)技術(shù)是一種訪問(wèn)控制技術(shù),它是在內(nèi)部網(wǎng)絡(luò)(專(zhuān)用網(wǎng)絡(luò))和外部網(wǎng)絡(luò)(公用網(wǎng)絡(luò))之間(如Internet和Intranet之間)設(shè)立的一道“防護(hù)欄”,即在它們的界面上構(gòu)造一個(gè)保護(hù)層(或隔離層),阻止對(duì)信息資源的非法訪問(wèn),并強(qiáng)制所有的連接都必須經(jīng)過(guò)此保護(hù)層,從而提供了一個(gè)封閉的邏輯環(huán)境,保護(hù)內(nèi)部網(wǎng)絡(luò)免遭非法入侵。防火墻提供的服務(wù)主要有:保護(hù)那些易受攻擊的服務(wù):控制對(duì)特殊站點(diǎn)的訪問(wèn);集中化的安全管理;對(duì)網(wǎng)絡(luò)存取訪問(wèn)進(jìn)行審計(jì)。目前防火墻的主要技術(shù)有數(shù)據(jù)包過(guò)濾和代理服務(wù)等,這些技術(shù)可單獨(dú)使用,也可結(jié)合在一起共同使用。(1)包過(guò)濾技術(shù)它是基于路由器的技術(shù),包過(guò)濾型防火墻位于網(wǎng)絡(luò)層,它根據(jù)在系統(tǒng)內(nèi)部設(shè)置的訪問(wèn)控制表,對(duì)通過(guò)網(wǎng)絡(luò)層的IP數(shù)據(jù)包進(jìn)行選擇和過(guò)濾。通過(guò)對(duì)數(shù)據(jù)包包頭信息中的源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)的檢查,來(lái)確定該數(shù)據(jù)包是否合法,以決定是否允許它通過(guò)。包過(guò)濾只能限制一部分瀏覽器對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),一些黑客仍可以利用Spoofing技術(shù),繞國(guó)資源路由器,創(chuàng)建帶有虛假I(mǎi)P地址的包進(jìn)入Web站點(diǎn),對(duì)數(shù)據(jù)庫(kù)進(jìn)行侵犯,同時(shí)還缺乏審計(jì),跟蹤及驗(yàn)證功能。(2)代理技術(shù)代理服務(wù)技術(shù)是基于網(wǎng)絡(luò)應(yīng)用層的,作用于應(yīng)用層。其核心是運(yùn)行于防火墻主機(jī)上的代理服務(wù)器進(jìn)程,它代替網(wǎng)絡(luò)用戶完成特定的TCP/IP功能,一個(gè)代理服務(wù)器實(shí)際上是一個(gè)為特定網(wǎng)絡(luò)應(yīng)用而連接兩個(gè)網(wǎng)絡(luò)的網(wǎng)關(guān),對(duì)于每一種不同的應(yīng)用服務(wù),都必須有一個(gè)相應(yīng)的代理。外部網(wǎng)絡(luò)和內(nèi)部網(wǎng)絡(luò)之間要建立連接,必須通過(guò)代理的中間轉(zhuǎn)換,內(nèi)部網(wǎng)絡(luò)只接受代理服務(wù)提出的服務(wù)請(qǐng)求,拒絕外部網(wǎng)絡(luò)的直接連接。代理技術(shù)的優(yōu)點(diǎn)是它能完全控制通信雙方的會(huì)話過(guò)程,具有用戶級(jí)的身份驗(yàn)證、日志管理和帳號(hào)管理功能,提供了比過(guò)濾路由器更為嚴(yán)格的安全性:缺點(diǎn)是缺乏透明性,影響網(wǎng)絡(luò),必須針對(duì)每一項(xiàng)服務(wù)都建立對(duì)應(yīng)的應(yīng)用層網(wǎng)關(guān),才能提供全面的安全保證,這勢(shì)必嚴(yán)重限制新應(yīng)用的引入和掛接。結(jié)合上述兩種防火墻技術(shù)的優(yōu)缺點(diǎn),在實(shí)際構(gòu)建防火墻系統(tǒng)時(shí),通常由過(guò)濾器提供第一級(jí)的安全防護(hù),主要用于防止IP欺騙攻擊,再由代理服務(wù)器提供更高級(jí)的安全防護(hù)機(jī)制。防火墻技術(shù)雖然能提供一些安全保證,但是還不能滿足數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)對(duì)安全問(wèn)題的實(shí)際要求,而且完整的數(shù)據(jù)庫(kù)安全機(jī)制應(yīng)對(duì)不用用戶賦予不同的訪問(wèn)權(quán)限,建立不同視圖,因此應(yīng)將防火墻技術(shù)與其他數(shù)據(jù)庫(kù)安全機(jī)制結(jié)合起來(lái)。4.2.2身份認(rèn)證和授權(quán)控制基于Web的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中包含大量的敏感數(shù)據(jù)和機(jī)密數(shù)據(jù),為保證系統(tǒng)數(shù)據(jù)在存儲(chǔ)時(shí)和網(wǎng)絡(luò)傳輸時(shí)不被未經(jīng)授權(quán)的用戶訪問(wèn)或解讀,可以利用用戶名來(lái)標(biāo)明用戶身份,經(jīng)系統(tǒng)鑒別用戶的合法性后,再利用口令進(jìn)一步核實(shí)用戶身份。為保證口令的安全,在口令的提交過(guò)程中,可以不采用明文形式。具體方法是:可先對(duì)口令、用戶名進(jìn)行加密后再傳送,服務(wù)器接受以后,對(duì)其進(jìn)行解密?;蛘呃冒踩捉幼謪f(xié)議(SSL)加密方法,通過(guò)使用公共密鑰和對(duì)稱性加密提供非公開(kāi)通信、身份驗(yàn)證和信息繼承。這樣既可以簡(jiǎn)化其復(fù)雜性,又可以保證其安全性,使客戶和服務(wù)器可以在一種防竊聽(tīng)防干擾或防消息偽造的方式下通信。在Web應(yīng)用程序級(jí),可利用身份認(rèn)證機(jī)制保護(hù)被限制的ASP內(nèi)容。要求每個(gè)試圖訪問(wèn)被限制的ASP內(nèi)容的用戶必須擁有有效的WindowsNT帳號(hào)的用戶名和密碼,每當(dāng)用戶試圖防問(wèn)被限制的內(nèi)容時(shí),Web服務(wù)器將進(jìn)行身份驗(yàn)證,以檢查用戶是否擁有有效的WindowsNT帳號(hào)。在后臺(tái)數(shù)據(jù)庫(kù)中,用身份驗(yàn)證機(jī)制進(jìn)一步確認(rèn)用戶的合法性??山ser用戶表,其信息包括登錄名、口令、用戶名及訪問(wèn)權(quán)限代碼。訪問(wèn)權(quán)限代表了用戶能對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀取、插入、修改操作的權(quán)限組合。用戶在經(jīng)過(guò)IP地址過(guò)濾后,在WebBrowser端呈現(xiàn)用戶登錄界面。用戶在系統(tǒng)提示下輸入登錄名、口令,并提交輸入結(jié)果。WebServer在接受到瀏覽器請(qǐng)求后,激活A(yù)SP,通過(guò)ADO驅(qū)動(dòng)ODBC與User數(shù)據(jù)庫(kù)建立連接,運(yùn)行ASP處理程序?qū)⒂脩糨斎肱c數(shù)據(jù)庫(kù)記錄進(jìn)行比較,若為合法用戶,則允許其根據(jù)權(quán)限訪問(wèn)數(shù)據(jù)庫(kù),否則將拒絕訪問(wèn)請(qǐng)求或引導(dǎo)用戶注冊(cè)。由于基于Web的數(shù)據(jù)庫(kù)應(yīng)用程序運(yùn)行在Internet的環(huán)境中,用戶完全有機(jī)會(huì)不在程序員控制之下,通過(guò)一些簡(jiǎn)單操作繞過(guò)登錄頁(yè)面,躲避用戶名和口令的驗(yàn)證,對(duì)數(shù)據(jù)庫(kù)安全構(gòu)成直接威脅。為了防止非法用戶進(jìn)入,保護(hù)基于Web的數(shù)據(jù)庫(kù)安全性,可以利用Session對(duì)象和HTTPheaders信息來(lái)實(shí)現(xiàn)安全控制。ASP提供了Session內(nèi)置對(duì)象,對(duì)每個(gè)用戶請(qǐng)求激活不同的Session對(duì)象,Session變量在整個(gè)用戶工作期保持不變。因此,可以利用Session變量來(lái)保持特定用戶信息。當(dāng)用戶通過(guò)了用戶名和口令的驗(yàn)證后,就把Session對(duì)象的SessionID屬性作為一個(gè)Session變量存儲(chǔ)起來(lái)。然后,當(dāng)每次用戶試圖導(dǎo)航到一種要求有效連接的頁(yè)面時(shí),就可以比較當(dāng)前的SessionID與存儲(chǔ)在Session對(duì)象中的ID。如它們不匹配,就可以采用適當(dāng)?shù)男袆?dòng)拒絕訪問(wèn)。以此種方法作為身份認(rèn)證是十分有效的,可以進(jìn)一步完善ASP的安全機(jī)制。在瀏覽器向WebServer發(fā)出請(qǐng)求的同時(shí)包含了相當(dāng)數(shù)量的HTTP標(biāo)題頭域信息,如REMOTE_ADDR標(biāo)明提出請(qǐng)求的主機(jī)的Internet地址,HTTP_REFERER表示用戶到達(dá)當(dāng)前頁(yè)經(jīng)過(guò)的鏈接。因此可以為所有應(yīng)用程序創(chuàng)建用于IIS管理的統(tǒng)一目錄并保存路徑信息。各應(yīng)用程序均以<!--#Includevirtual="myfile.asa"-->方式先執(zhí)行Myfile.asa,通過(guò)判斷HTTP_REFERER信息,確定用戶的合法性。若用戶直接輸入U(xiǎn)RL或通過(guò)其它方式繞過(guò)用戶名、口令驗(yàn)證,則拒絕訪問(wèn)請(qǐng)求。由于Web應(yīng)用程序的基礎(chǔ)是一個(gè)個(gè)Web頁(yè)面,整個(gè)系統(tǒng)功能體現(xiàn)在每個(gè)頁(yè)面上,所有頁(yè)面的相互調(diào)用完成整個(gè)系統(tǒng)功能。但是,由于頁(yè)面的無(wú)記憶性和獨(dú)立性,使頁(yè)面的訪問(wèn)實(shí)際是通過(guò)URL實(shí)現(xiàn),如果程序不對(duì)每個(gè)頁(yè)面進(jìn)行合法性檢驗(yàn)證包含文件是一個(gè)運(yùn)行在服務(wù)器端的能訪問(wèn)數(shù)據(jù)庫(kù)表查,那么非法用戶即使不知道用戶名和口令,但只要知道某些的URL,也可以跳過(guò)身份驗(yàn)證的頁(yè)面去直接訪問(wèn)后面的和數(shù)據(jù)處理的相關(guān)頁(yè)面,從而入侵到系統(tǒng)的核心數(shù)據(jù)庫(kù)中。針對(duì)上述問(wèn)題,可在Web服務(wù)器上建立一個(gè)Web用戶訪問(wèn)頁(yè)面的權(quán)限表,每一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的頁(yè)面又和具體的數(shù)據(jù)庫(kù)表、用戶名和口令相對(duì)應(yīng),如要通過(guò)該頁(yè)面訪問(wèn)某一數(shù)據(jù)庫(kù)表或?qū)?shù)據(jù)庫(kù)表實(shí)施某種操作,系統(tǒng)要求該數(shù)據(jù)庫(kù)表對(duì)應(yīng)的用戶名和口令必須和輸入的用戶名和口令一致,才允許其繼續(xù)進(jìn)行。設(shè)想若跳過(guò)權(quán)限驗(yàn)證的頁(yè)面去直接訪問(wèn)后面的和數(shù)據(jù)處理的相關(guān)頁(yè)面,由于系統(tǒng)得不到從權(quán)限驗(yàn)證頁(yè)面上來(lái)的用戶名和口令,系統(tǒng)將拒絕對(duì)數(shù)據(jù)庫(kù)表的操作。需要強(qiáng)調(diào)的是,一、權(quán)限驗(yàn)證頁(yè)面每次重新顯現(xiàn),必須要求重新輸入用戶名和口令,也就是說(shuō),任何一次該頁(yè)面的重新出現(xiàn)或從其它頁(yè)面回退到該頁(yè)面,用戶名和口令輸入框必須自動(dòng)清空。二、訪問(wèn)數(shù)據(jù)庫(kù)表的頁(yè)面一旦操作完,該頁(yè)面的權(quán)限驗(yàn)證值就自動(dòng)作廢。這樣就保證了要操作數(shù)據(jù)的唯一通道,使合法用戶的數(shù)據(jù)得以安全保護(hù)。如何對(duì)網(wǎng)站的數(shù)據(jù)庫(kù)進(jìn)行保護(hù),如何防止訪問(wèn)者看到他們沒(méi)有訪問(wèn)權(quán)限的網(wǎng)頁(yè),這都需要一個(gè)權(quán)限驗(yàn)證系統(tǒng)。當(dāng)然,可以配置IIS,使用基本驗(yàn)證模式或WindowsNTChallenge/Response驗(yàn)證模式。使用兩種中的任一種驗(yàn)證系統(tǒng),通過(guò)改變對(duì)文件的權(quán)限,可以強(qiáng)制用戶在訪問(wèn)一個(gè)網(wǎng)頁(yè)之前輸入密碼。但是,不論使用基本驗(yàn)證模式或WindowsNTChallenge/Response驗(yàn)證模式,都存在一個(gè)問(wèn)題。這兩種驗(yàn)證系統(tǒng)都是與WindowsNT安全體系相分離的。這意味著每當(dāng)有新用戶注冊(cè)時(shí),都需要手工添加用戶,而且不容易從網(wǎng)頁(yè)中訪問(wèn)和修改密碼和用戶名。如果只是想通過(guò)密碼來(lái)保護(hù)自己的和其他管理員的特殊網(wǎng)頁(yè),IIS提供的兩種驗(yàn)證系統(tǒng)都是可行的。但是,假如你想在用戶提供了自己的權(quán)限級(jí)別信息后,自動(dòng)為新用戶進(jìn)行注冊(cè),就需要在Web應(yīng)用系統(tǒng)中自己建立一個(gè)驗(yàn)證系統(tǒng)。建立一個(gè)權(quán)限驗(yàn)證系統(tǒng)。需要兩個(gè)數(shù)據(jù)庫(kù)表和一個(gè)文件:權(quán)限信息表:用來(lái)保存權(quán)限信息。驗(yàn)證包含文件:每一個(gè)需要權(quán)限保護(hù)的網(wǎng)頁(yè)都要包含這個(gè)文件。權(quán)限信息表包含三個(gè)字段。第一個(gè)字段保存用戶名,第二個(gè)字段保存用戶密碼,第三個(gè)字段保存對(duì)應(yīng)權(quán)限級(jí)別。級(jí)別信息表包含兩個(gè)字段。第一個(gè)字段保存權(quán)限級(jí)別,第二個(gè)字段保存該級(jí)別對(duì)應(yīng)的頁(yè)面標(biāo)識(shí)。兩表的信息可由數(shù)據(jù)庫(kù)管理員進(jìn)行管理。無(wú)論何時(shí),當(dāng)一個(gè)訪問(wèn)者試圖訪問(wèn)一個(gè)權(quán)限保護(hù)的網(wǎng)頁(yè)時(shí),將對(duì)這兩個(gè)表進(jìn)行查詢,如果在表中查到你從權(quán)限驗(yàn)證頁(yè)面上輸入的用戶名和口令,就可以訪問(wèn)這個(gè)保護(hù)的頁(yè)面。驗(yàn)證包含文件是一個(gè)運(yùn)行在服務(wù)器端的能訪問(wèn)數(shù)據(jù)庫(kù)表的Web文件,被包含在你想進(jìn)行權(quán)限保護(hù)的每一個(gè)網(wǎng)頁(yè)頁(yè)面中。它提供用戶輸入名字和密碼的功能,然后到權(quán)限表中查詢輸入的名字和密碼。如果找不到,用戶將不能訪問(wèn)該頁(yè)面。如果找到,則根據(jù)對(duì)應(yīng)的級(jí)別到級(jí)別信息表中查看該級(jí)別下是否有該頁(yè)面的標(biāo)識(shí),如果沒(méi)有,用戶也不能訪問(wèn)該頁(yè)面。一般情況下,對(duì)于大量的普通查詢用戶,系統(tǒng)應(yīng)提供自動(dòng)注冊(cè)功能,使其具有查詢?yōu)g覽權(quán)限,即自動(dòng)注冊(cè)的用戶,只能擁有這種最低級(jí)別的權(quán)限。其它權(quán)限級(jí)別不應(yīng)自動(dòng)注冊(cè)。當(dāng)用戶注冊(cè)后,系統(tǒng)會(huì)自動(dòng)將用戶名和口令寫(xiě)入權(quán)限信息表,同時(shí)添入普通用戶級(jí)別碼。4.2.3監(jiān)視跟蹤和審計(jì)日志系統(tǒng)具有綜合性數(shù)據(jù)記錄功能和自動(dòng)分類(lèi)檢索能力。完整的日志不僅要包括用戶的各項(xiàng)操作,而且還要包括網(wǎng)絡(luò)中數(shù)據(jù)接受的正確性、有效性及合法性的檢查結(jié)果,為日后網(wǎng)絡(luò)安全分析提供可靠的依據(jù)。許多應(yīng)用程序的日志記錄只用于時(shí)候監(jiān)督,其實(shí)對(duì)日志的分析還可用與預(yù)防入侵,提高網(wǎng)絡(luò)安全。在數(shù)據(jù)庫(kù)應(yīng)用胸中,日志將記錄自用戶登錄開(kāi)始起,直到退出系統(tǒng)為止,在這段時(shí)間中所執(zhí)行的所有操作包括登錄失敗操作、對(duì)數(shù)據(jù)庫(kù)的操作及系統(tǒng)功能的使用等。因此,必須建立完善的日志記錄功能。另外,還可利用現(xiàn)有的網(wǎng)絡(luò)監(jiān)視軟件進(jìn)行日志記錄和信息跟蹤。例如,用日志監(jiān)視跟蹤可進(jìn)行潛在“黑客”攻擊檢查、單帳號(hào)多用戶檢查和非工作時(shí)間操作檢查等。為了解決用戶躲避用戶名和口令的驗(yàn)證,可采用對(duì)頁(yè)面用戶基本信息的跟蹤監(jiān)視,即采用ASP技術(shù)中的QueryString和Form的Hidden類(lèi)型保存用戶基本信息。在每個(gè)應(yīng)用程序執(zhí)行前先跟蹤監(jiān)視用戶信息是否存在,若用戶直接以URL地址訪問(wèn)數(shù)據(jù)庫(kù)則會(huì)因RequeryString.QueryString或Request.Form的值為空被拒絕。此方法可更進(jìn)一步提高系統(tǒng)的安全性。審計(jì)主要是確??刹樾浴徲?jì)作為一項(xiàng)安全技術(shù),對(duì)信息系統(tǒng)的安全有著很重要的作用。通過(guò)設(shè)置完善的審計(jì)機(jī)制,能及時(shí)提供與系統(tǒng)運(yùn)行過(guò)程中的各種可疑現(xiàn)象有關(guān)的信息,供有關(guān)人員能及時(shí)發(fā)現(xiàn)隱患。審計(jì)功能可以記錄主體訪問(wèn)客體的軌跡。記錄的內(nèi)容包括:站點(diǎn)使用情況、服務(wù)器工作情況、鏈接狀態(tài)、頁(yè)面使用情況、用戶情況、訪問(wèn)時(shí)間、用戶、操作類(lèi)型及是否成功等。為提高審計(jì)功能,必要時(shí)還需設(shè)置審計(jì)安全時(shí)間發(fā)生積累機(jī)制。當(dāng)超過(guò)一定閾值時(shí),能立刻發(fā)出報(bào)警,以提示應(yīng)采取措施。采用審計(jì)功能,可以知道用戶正在使用的系統(tǒng)權(quán)限、使用的頻率、正在登錄的用戶數(shù)、會(huì)話平均持續(xù)時(shí)間、在特殊表上使用的命令以及很多其他有關(guān)事實(shí)。4.2.4存儲(chǔ)過(guò)程在基于Web的數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中,可建立一個(gè)存儲(chǔ)過(guò)程,在使用時(shí)通過(guò)內(nèi)嵌的SQL命令來(lái)執(zhí)行。在存儲(chǔ)過(guò)程中,采用將用戶和數(shù)據(jù)分開(kāi)的方法。這種方法不允許任何對(duì)表的完全訪問(wèn)和更新,只是提供實(shí)現(xiàn)與表交互的存儲(chǔ)過(guò)程。用戶把參數(shù)提供給插入存儲(chǔ)過(guò)程。插入存儲(chǔ)過(guò)程即為它們執(zhí)行插入操作。用戶提供檢索的條件,檢索存儲(chǔ)過(guò)程返回找到的數(shù)據(jù)行。這個(gè)辦法的好處在于它完全控制了信息的存儲(chǔ)和檢索,任何不想讓用戶訪問(wèn)的列都可以被忽略,任何插入之前所需要做的附加處理都可以做到。這對(duì)于數(shù)據(jù)存儲(chǔ)和檢索來(lái)說(shuō),是一個(gè)帶有更多地面向?qū)ο箫L(fēng)格的方法,它有助于保證數(shù)據(jù)的正確與安全。4.2.5備份與故障恢復(fù)即使采取了很多安全措施,也難保數(shù)據(jù)庫(kù)的萬(wàn)無(wú)一失。因安全是相對(duì)的,不安全才是絕對(duì)的。為了在數(shù)據(jù)庫(kù)攻破后,能盡快恢復(fù)系統(tǒng)并找出入侵者,我們還必須做好系統(tǒng)數(shù)據(jù)備份。備份與故障恢復(fù)是實(shí)現(xiàn)信息系統(tǒng)安全運(yùn)行的重要技術(shù)之一,是確保信息系統(tǒng)因各種不測(cè)時(shí)間受到破壞時(shí),能盡快投入再使用的重要保證。按照信息系統(tǒng)所受到的破壞程度,需要采取不同的恢復(fù)措施,對(duì)備份的要求也有所不同。為了對(duì)付災(zāi)難性的破壞,可以設(shè)置主機(jī)系統(tǒng)的遠(yuǎn)地系統(tǒng)備份,以備主機(jī)系統(tǒng)不能正常運(yùn)行時(shí)啟用。當(dāng)系統(tǒng)受到非災(zāi)難性的破壞時(shí),主機(jī)系統(tǒng)可通過(guò)專(zhuān)用備份設(shè)備,進(jìn)行全系統(tǒng)備份、部分系統(tǒng)備份和增量信息備份,以確保系統(tǒng)停機(jī)后經(jīng)過(guò)嘗新啟動(dòng)即可正常運(yùn)行,而且不會(huì)造成有用信息的丟失。當(dāng)前,計(jì)算機(jī)軟、硬件系統(tǒng)的可靠性有了很大的改善,而且還可以采用磁盤(pán)陣列等設(shè)備來(lái)提高系統(tǒng)的容錯(cuò)能力,這更進(jìn)一步提高了系統(tǒng)的可靠性。然而這些措施不可能是完美的,也無(wú)法保證系統(tǒng)的安全做到萬(wàn)無(wú)一失,它們只能在一定程度上減少存儲(chǔ)介質(zhì)故障而帶來(lái)的損失。而且對(duì)于操作人員的意外操作或蓄意的破壞性操作、破壞性病毒的攻擊、自然災(zāi)害等原因所引起的系統(tǒng)故障,以上措施還無(wú)能為力。定期進(jìn)行數(shù)據(jù)備份是保證系統(tǒng)安全的一項(xiàng)重要措施。在意外的情況發(fā)生時(shí),可以依靠備份數(shù)據(jù)來(lái)恢復(fù)數(shù)據(jù)庫(kù)。目前,最快的然而是最昂貴的保護(hù)是準(zhǔn)備一個(gè)備份服務(wù)器隨時(shí)替代主服務(wù)器,備份服務(wù)器必須能支持MicrosoftSQLServer運(yùn)行,并能完整備份所有數(shù)據(jù)庫(kù)、系統(tǒng)和用戶帳戶,因?yàn)槭聞?wù)處理日志和數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)由主服務(wù)器創(chuàng)建,所以它們必須迅速地裝載到備份服務(wù)器上,如果主服務(wù)器需要中止工作一段時(shí)間,只需投入備份服務(wù)器替代主服務(wù)器即可,備份服務(wù)器將接管事務(wù)處理日志,就好象什么事情也沒(méi)發(fā)生過(guò)。這就是服務(wù)器鏡像備份,也稱為雙機(jī)熱備份。因基于成本或其他原因考慮,尤其是雙機(jī)熱備份(專(zhuān)門(mén)使用一個(gè)與服務(wù)器配置一樣的計(jì)算機(jī)為備份服務(wù)器)采用者較少,因此采用異機(jī)備份的策略,是最好最經(jīng)濟(jì)的備份方式,特別是當(dāng)服務(wù)器崩潰或MicrosoftSQLServer系統(tǒng)崩潰時(shí),此時(shí)除了雙機(jī)熱備份可以啟用備份服務(wù)器直接使用外,通過(guò)其他的各種備份策略(不包括異機(jī)備份策略)必須重裝服務(wù)器操作系統(tǒng)(MicrosoftWindowsNT)或重裝MicrosoftSQLServer。采用異機(jī)備份策略,則不必?fù)?dān)心,這時(shí)只需待裝好MicrosoftSQLServer后,從異機(jī)傳送數(shù)據(jù)恢復(fù)即可。具體的做法為:在局域網(wǎng)內(nèi)的任何一臺(tái)工作站計(jì)算機(jī)上安裝MicrosoftWindowsNT及MicrosoftSQLServer,并在該機(jī)上建立一個(gè)與服務(wù)器中的數(shù)據(jù)庫(kù)同名的數(shù)據(jù)庫(kù),利用MicrosoftSQLServer系統(tǒng)本身提供的異機(jī)傳送工具(在MicrosoftSQLEnterpriseManager中的Tools菜單下的Database/ObjectTransfer),通過(guò)設(shè)置定時(shí)(可以是每月、每周、每日或每時(shí)),由計(jì)算機(jī)自動(dòng)把服務(wù)器中的數(shù)據(jù)庫(kù)的數(shù)據(jù)傳送到該工作站機(jī)的數(shù)據(jù)庫(kù)中,這樣一旦服務(wù)器(操作系統(tǒng))崩潰或MicrosoftSQLServer系統(tǒng)崩潰時(shí),只要重裝服務(wù)器操作系統(tǒng)(MicrosoftWindowsNT)或重裝MicrosoftSQLServer,仍然可以采用異機(jī)傳送工具來(lái)通過(guò)該工作站把數(shù)據(jù)傳回至服務(wù)器的MicrosoftSQLServer數(shù)據(jù)庫(kù)中,以確保數(shù)據(jù)的安全恢復(fù)。4.3案例分析我們知道,SQL是一種結(jié)構(gòu)化查詢語(yǔ)言,功能相當(dāng)強(qiáng)大,基于Web腳本語(yǔ)言+后臺(tái)書(shū)系統(tǒng)的動(dòng)態(tài)網(wǎng)站多通過(guò)SQL語(yǔ)言來(lái)查詢數(shù)據(jù)庫(kù)和更新數(shù)據(jù)庫(kù)。我們?cè)跒g覽這些網(wǎng)頁(yè)時(shí)通常要提交一些信息,比如用戶登錄名、密碼,信息條目的ID等,服務(wù)器應(yīng)用程序就會(huì)對(duì)瀏覽器提交的數(shù)據(jù)進(jìn)行處理,然后返回相應(yīng)的信息給瀏覽器。我們這里舉一個(gè)驗(yàn)證登錄的例子來(lái)說(shuō)明SQL注入的原理。假設(shè)某網(wǎng)站的數(shù)據(jù)庫(kù)中有一個(gè)login表用來(lái)存放用戶的登錄信息,包含username、password等字段,網(wǎng)站的應(yīng)用程序根據(jù)用戶提交的數(shù)據(jù)生成SQL查詢語(yǔ)句,如果查詢返回的記錄>1,那么用戶就通過(guò)驗(yàn)證,反之登錄失敗。設(shè)用戶提交的用戶名為:abc,密碼為:“123”,則生成SQL語(yǔ)句:select*formloginwhereusername=‘a(chǎn)bc’andpassword=‘123’。如果login表中存在username為“abc”而密碼為“123”的用戶,那么就登錄成功,這是正常的情況。但是,如果用戶提交的用戶名為:“abc’or‘’=‘”,密碼為:“123’or‘’=‘”時(shí)又怎么樣呢?此時(shí)生成的SQL語(yǔ)句為:select*fromloginwhereusername=‘a(chǎn)bc’or‘’=‘’andpassword=‘123’or‘’=‘’。此時(shí)不管login表中是否存在username為“abc”密碼為“123”的用戶,只要login表中有記錄,都將登錄成功,因?yàn)椤?=‘’(空字符=空字符)恒成立。我們發(fā)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器并不是將我們提交的用戶名僅僅當(dāng)作用戶名來(lái)處理,而是將之分成兩段,取“abc’”當(dāng)成用戶名,構(gòu)成邏輯關(guān)系式username=‘a(chǎn)bc’,并將余下部分“or‘’=‘’”與之共同組成邏輯或關(guān)系式:username=‘a(chǎn)bc’or‘’=‘’,顯然,此關(guān)系式恒為真;同樣,對(duì)我們提交的密碼也是如此處理。也就是說(shuō),上述SQL語(yǔ)句的where子句被分析為:where[(username=‘a(chǎn)bc’)or(‘’=‘’)]and[(password=‘123’)or(‘’=‘’)]。對(duì)于任何記錄,此邏輯關(guān)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論