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