Web數(shù)據(jù)庫是基于Internet/Intranet的應(yīng)用系統(tǒng),由于互連網(wǎng)開放性和通信協(xié)議的安全缺陷,以及在網(wǎng)絡(luò)環(huán)境中數(shù)據(jù)存儲和對其訪問與處理的分布性特點,網(wǎng)上傳輸?shù)臄?shù)據(jù)容易受到破壞、竊取、篡改、轉(zhuǎn)移和丟失。這些危害通常是對網(wǎng)絡(luò)的攻擊引起的。
到現(xiàn)在,針對Web數(shù)據(jù)庫的應(yīng)用級入侵已經(jīng)變得越來越猖獗,如SQL注入、跨站點腳本攻擊和未經(jīng)授權(quán)的用戶訪問等。
所有這些入侵都有可能繞過前臺安全系統(tǒng)并對數(shù)據(jù)庫系統(tǒng)攻擊。如何保證Web數(shù)據(jù)庫的安全性已成為新的課題。
*關(guān)、對用戶安全管理
Web數(shù)據(jù)庫是個極為復(fù)雜的系統(tǒng),因此很難進行正確的配置和安全維護,當(dāng)然,必須首先要保證的就是數(shù)據(jù)庫用戶的權(quán)限的安全性。
當(dāng)用戶通過Web方式要對數(shù)據(jù)庫中的對象(表、視圖、觸發(fā)器、存儲過程等)進行操作時,必須通過數(shù)據(jù)庫訪問的身份認(rèn)證。多數(shù)數(shù)據(jù)庫系統(tǒng)還有眾所周知的默認(rèn)賬號和密碼,可支持對數(shù)據(jù)庫資源的各級訪問。因此,很多重要的數(shù)據(jù)庫系統(tǒng)很可能受到威協(xié)。
用戶存取權(quán)限是指不同的用戶對于不同的數(shù)據(jù)對象有不同的操作權(quán)限。存取權(quán)限由兩個要素組成:數(shù)據(jù)對象和操作類型。定義一個用戶的存取權(quán)限就是要定義這個用戶可以在哪些數(shù)據(jù)對象上進行哪些類型的操作。
權(quán)限分系統(tǒng)權(quán)限和對象權(quán)限兩種。系統(tǒng)權(quán)限由DBA授予某些數(shù)據(jù)庫用戶,只有得到系統(tǒng)權(quán)限,才能成為數(shù)據(jù)庫用戶。對象權(quán)限是授予數(shù)據(jù)庫用戶對某些數(shù)據(jù)對象進行某些操作的權(quán)限,它既可由DBA授權(quán),也可由數(shù)據(jù)對象的創(chuàng)建者授予。
第二關(guān)、定義視圖
為不同的用戶定義不同的視圖,可以限制用戶的訪問范圍。通過視圖機制把需要保密的數(shù)據(jù)對無權(quán)存取這些數(shù)據(jù)的用戶隱藏起來,可以對數(shù)據(jù)庫提供一定程度的安全保護。實際應(yīng)用中常將視圖機制與授權(quán)機制結(jié)合起來使用,首先用視圖機制屏蔽一部分保密數(shù)據(jù),然后在視圖上進一步進行授權(quán)。
第三關(guān)、數(shù)據(jù)加密
數(shù)據(jù)安全隱患無處不在。一些機密數(shù)據(jù)庫、商業(yè)數(shù)據(jù)等必須防止它人非法訪問、修改、拷貝。如何保證數(shù)據(jù)安全?數(shù)據(jù)加密是應(yīng)用最廣、成本*廉而相對最可靠的方法。數(shù)據(jù)加密是保護數(shù)據(jù)在存儲和傳遞過程中不被竊取或修改的有效手段。
數(shù)據(jù)加密系統(tǒng)包括對系統(tǒng)的不同部分要選擇何種加密算法、需要多高的安全級別、各算法之間如何協(xié)作等因素。在系統(tǒng)的不同部分要綜合考慮執(zhí)行效率與安全性之間的平衡。因為一般來講安全性總是以犧牲系統(tǒng)效率為代價的。
如果要在Internet上的兩個客戶端傳遞安全數(shù)據(jù),這就要求客戶端之間可以彼此判斷對方的身份,傳遞的數(shù)據(jù)必須加密,當(dāng)數(shù)據(jù)在傳輸中被更改時可以被發(fā)覺。
第四關(guān)、事務(wù)管理和故障恢復(fù)
事務(wù)管理和故障恢復(fù)主要是對付系統(tǒng)內(nèi)發(fā)生的自然因素故障,保證數(shù)據(jù)和事務(wù)的一致性和完整性。
故障恢復(fù)的主要措施是進行日志記錄和數(shù)據(jù)復(fù)制。在網(wǎng)絡(luò)數(shù)據(jù)庫系統(tǒng)中,分布事務(wù)首先要分解為多個子事務(wù)到各個站點上去執(zhí)行,各個服務(wù)器之間還必須采取合理的算法進行分布式并發(fā)控制和提交,以保證事務(wù)的完整性。
事務(wù)運行的每一步結(jié)果都記錄在系統(tǒng)日志文件中,并且對重要數(shù)據(jù)進行復(fù)制,發(fā)生故障時根據(jù)日志文件利用數(shù)據(jù)副本準(zhǔn)確地完成事務(wù)的恢復(fù)。
第五關(guān)、數(shù)據(jù)庫備份與恢復(fù)
計算機同其他設(shè)備一樣,都可能發(fā)生故障。計算機故障的原因多種多樣,包括磁盤故障、電源故障、軟件故障、災(zāi)害故障以及人為破壞等。一旦發(fā)生這種情況,就可能造成數(shù)據(jù)庫的數(shù)據(jù)丟失。
因此數(shù)據(jù)庫系統(tǒng)必須采取必要的措施,以保證發(fā)生故障時,可以恢復(fù)數(shù)據(jù)庫。數(shù)據(jù)庫管理系統(tǒng)的備份和恢復(fù)機制就是保證在數(shù)據(jù)庫系統(tǒng)出故障時,能夠?qū)?shù)據(jù)庫系統(tǒng)還原到正常狀態(tài)。
加強數(shù)據(jù)備份非常重要,數(shù)據(jù)庫擁有很多關(guān)鍵的數(shù)據(jù),這些數(shù)據(jù)一旦遭到破壞后果不堪設(shè)想,而這往往是入侵者真正關(guān)心的東西。不少管理員在這點上作得并不好,不是備份不完全,就是備份不及時。
數(shù)據(jù)備份需要仔細(xì)計劃,制定出一個策略測試后再去實施,備份計劃也需要不斷地調(diào)整。
第六關(guān)、審計追蹤機制
審計追蹤機制是指系統(tǒng)設(shè)置相應(yīng)的日志記錄,特別是對數(shù)據(jù)更新、刪除、修改的記錄,以便日后查證。日志記錄的內(nèi)容可以包括操作人員的名稱、使用的密碼、用戶的IP地址、登錄時間、操作內(nèi)容等。若發(fā)現(xiàn)系統(tǒng)的數(shù)據(jù)遭到破壞,可以根據(jù)日志記錄追究責(zé)任,或者從日志記錄中判斷密碼是否被盜,以便修改密碼,重新分配權(quán)限,確保系統(tǒng)的安全。
第七關(guān)、重點在服務(wù)器
Web數(shù)據(jù)庫的三層體系結(jié)構(gòu)中,數(shù)據(jù)存放在數(shù)據(jù)庫服務(wù)器中,大部分的事務(wù)處理及商業(yè)邏輯處理在應(yīng)用服務(wù)器中進行,由應(yīng)用服務(wù)器提出對數(shù)據(jù)庫的操作請求。
理論上,既可以通過Web頁面調(diào)用業(yè)務(wù)處理程序來訪問數(shù)據(jù)庫,也可以繞過業(yè)務(wù)處理程序,使用一些數(shù)據(jù)庫客戶端工具直接登錄數(shù)據(jù)庫服務(wù)器,存取操作其中的數(shù)據(jù)。所以,數(shù)據(jù)庫服務(wù)器的安全設(shè)置至關(guān)重要。
用IDS(入侵檢測系統(tǒng))保衛(wèi)數(shù)據(jù)庫安全逐步普及,這種安全技術(shù)將傳統(tǒng)的網(wǎng)絡(luò)和操作系統(tǒng)級入侵探測系統(tǒng)(IDS)概念應(yīng)用于數(shù)據(jù)庫。應(yīng)用IDS提供主動的、針對SQL的保護和監(jiān)視,可以保護預(yù)先包裝或自行開發(fā)的Web應(yīng)用。