對於個人網站來說,受到建站條件的制約,Access數據庫成了廣大個人網站站長的首選。然而,Access數據庫本身存在很多安全隱患,攻擊者一旦找到數據庫文件的存儲路徑和文件名,後綴名為“.mdb”的Access數據庫文件就會被下載,網站中的許多重要信息會被一覽無余,非常可怕。當然,大家采用了各種措施來加強Access數據庫文件的安全,但真的有效嗎?
存在漏洞的保護措施
流傳最為廣泛的一種Access數據庫文件保護措施,是將Access數據庫文件的後綴名由“.mdb”改為“.asp”,接著再修改數據庫連接文件(如conn.ASP)中的數據庫地址內容,這樣一來即使別人知道數據庫文件的文件名和存儲位置,也無法進行下載。
這是網上最流行的一種增強Access數據庫安全的方法,而且還有強大的“理論基礎”。
因為“.mdb”文件不會被IIS服務器處理,而是直接將內容輸出到Web浏覽器,而“.asp”文件則要經過IIS服務器處理,Web浏覽器顯示的是處理結果,並不是ASP文件的內容。
但大家忽略了一個很重要的問題,這就是IIS服務器到底處理了ASP文檔中的哪些內容。這裡筆者提醒大家,只有ASP文件中“”標志符間的內容才會被IIS服務器處理,而其他內容則直接輸出到用戶的Web浏覽器。你的數據庫文件中包含這些特殊標志符嗎?即使有,Access也可能會對文檔中的“”標志符進行特殊處理,使之無效。因此後綴為“.ASP”的數據庫文件同樣是不安全的,還是會被惡意下載。
面對蠱惑人心的理論,以及眾人的附和,筆者也開始相信此方法的有效性。但事實勝於雄辯,一次無意間的試驗,讓筆者徹底揭穿了這個謠言。
筆者首先將一個名為“cpcw.mdb”的數據庫文件改名為“cpcw.asp”,然後上傳到網站服務器中。運行FlashGet,進入“添加新的下載任務”對話框,在“網址”欄中輸入“cpcw.ASP”文件的存儲路徑,然後在“重命名”欄中輸入“cpcw.mdb”。進行下載後,筆者發現可以很順利地打開“cpcw.mdb”,而且它所存儲的信息也被一覽無余。這就充分說明了單純地將數據庫文件名的後綴“.mdb”改為“.ASP”,還是存在安全隱患。
沒有最“安全”,只有更“安全”
任何事情都不是絕對的,因此增強Access數據庫文件的安全也只是相對的。畢竟Access只能用於小型數據庫的解決方案,它存在很多先天不足,特別是在安全方面。
我們所采用的各種方法,也只是相對來說增強了Access數據庫文件的安全,並不能實現絕對的安全,畢竟先天不足的問題是無法解決的。下面筆者為大家介紹一些方法,雖然不能完全防止別人下載Access數據庫文件,但只要你善用它們,Access數據庫文件就會更安全。
方法一:數據庫文件名應復雜
要下載Access數據庫文件,首先必須知道該數據庫文件的存儲路徑和文件名。如果你將原本非常簡單的數據庫文件名修改得更加復雜,這樣那些“不懷好意”者就要花費更多的時間去猜測數據庫文件名,無形中增強了Access數據庫的安全性。
很多ASP程序為方便用戶使用,它的數據庫文件通常都被命名為“data.mdb”,這大大方便了有經驗的攻擊者。如果我們將數據庫文件名修改得復雜一些,他人就不易猜到,如將“data.mdb”修改為“1rtj0ma27xi.mdb”,然後修改數據庫連接文件中的相應信息。這樣Access數據庫就相對安全一些。此方法適合於那些租用Web空間的用戶使用。