
數據庫,網(wǎng)站運營(yíng)的基礎,網(wǎng)站生存的要素,不管是個(gè)人用戶(hù)還是企業(yè)用戶(hù)都非常依賴(lài)網(wǎng)站數據庫的支持,然而很多別有用心的攻擊者也同樣非?!翱粗亍本W(wǎng)站數據庫。
對于個(gè)人網(wǎng)站來(lái)說(shuō),受到建站條件的制約,Access數據庫成了廣大個(gè)人網(wǎng)站站長(cháng)的首選。然而,Access數據庫本身存在很多安全隱患,攻擊者一旦找到數據庫文件的存儲路徑和文件名,后綴名為“.mdb”的Access數據庫文件就會(huì )被下載,網(wǎng)站中的許多重要信息會(huì )被一覽無(wú)余,非??膳?。當然,大家采用了各種措施來(lái)加強Access數據庫文件的安全,但真的有效嗎?
存在漏洞的保護措施
流傳最為廣泛的一種Access數據庫文件保護措施,是將Access數據庫文件的后綴名由“.mdb”改為“.asp”,接著(zhù)再修改數據庫連接文件(如conn.asp)中的數據庫地址內容,這樣一來(lái)即使別人知道數據庫文件的文件名和存儲位置,也無(wú)法進(jìn)行下載。
這是網(wǎng)上最流行的一種增強Access數據庫安全的方法,而且還有強大的“理論基礎”。
因為“.mdb”文件不會(huì )被IIS服務(wù)器處理,而是直接將內容輸出到Web瀏覽器,而“.asp”文件則要經(jīng)過(guò)IIS服務(wù)器處理,Web瀏覽器顯示的是處理結果,并不是ASP文件的內容。
但大家忽略了一個(gè)很重要的問(wèn)題,這就是IIS服務(wù)器到底處理了ASP文檔中的哪些內容。這里筆者提醒大家,只有ASP文件中“”標志符間的內容才會(huì )被IIS服務(wù)器處理,而其他內容則直接輸出到用戶(hù)的Web瀏覽器。你的數據庫文件中包含這些特殊標志符嗎?即使有,Access也可能會(huì )對文檔中的“”標志符進(jìn)行特殊處理,使之無(wú)效。因此后綴為“.asp”的數據庫文件同樣是不安全的,還是會(huì )被惡意下載。
面對蠱惑人心的理論,以及眾人的附和,筆者也開(kāi)始相信此方法的有效性。但事實(shí)勝于雄辯,一次無(wú)意間的試驗,讓筆者徹底揭穿了這個(gè)謠言。
筆者首先將一個(gè)名為“cpcw.mdb”的數據庫文件改名為“cpcw.asp”,然后上傳到網(wǎng)站服務(wù)器中。運行flashGet,進(jìn)入“添加新的下載任務(wù)”對話(huà)框,在“網(wǎng)址”欄中輸入“cpcw.asp”文件的存儲路徑,然后在“重命名”欄中輸入“cpcw.mdb”。進(jìn)行下載后,筆者發(fā)現可以很順利地打開(kāi)“cpcw.mdb”,而且它所存儲的信息也被一覽無(wú)余。這就充分說(shuō)明了單純地將數據庫文件名的后綴“.mdb”改為“.asp”,還是存在安全隱患。
沒(méi)有最“安全”,只有更“安全”
任何事情都不是絕對的,因此增強Access數據庫文件的安全也只是相對的。畢竟Access只能用于小型數據庫的解決方案,它存在很多先天不足,特別是在安全方面。
我們所采用的各種方法,也只是相對來(lái)說(shuō)增強了Access數據庫文件的安全,并不能實(shí)現絕對的安全,畢竟先天不足的問(wèn)題是無(wú)法解決的。下面筆者為大家介紹一些方法,雖然不能完全防止別人下載Access數據庫文件,但只要你善用它們,Access數據庫文件就會(huì )更安全。
方法一、數據庫文件名應復雜
要下載Access數據庫文件,首先必須知道該數據庫文件的存儲路徑和文件名。如果你將原本非常簡(jiǎn)單的數據庫文件名修改得更加復雜,這樣那些“不懷好意”者就要花費更多的時(shí)間去猜測數據庫文件名,無(wú)形中增強了Access數據庫的安全性。
很多ASP程序為方便用戶(hù)使用,它的數據庫文件通常都被命名為“data.mdb”,這大大方便了有經(jīng)驗的攻擊者。如果我們將數據庫文件名修改得復雜一些,他人就不易猜到,如將“data.mdb”修改為“1rtj0ma27xi.mdb”,然后修改數據庫連接文件中的相應信息。這樣Access數據庫就相對安全一些。此方法適合于那些租用Web空間的用戶(hù)使用。
不足之處:一旦查看到數據庫連接文件(如conn.asp)中的內容,再復雜的文件名也無(wú)濟于事。
方法二、利用ODBC數據源
很多網(wǎng)站W(wǎng)eb程序,將Access數據庫文件的存儲路徑和文件名存放在數據庫連接文件中。一旦這些連接文件中的內容外泄,那么不管數據庫文件名多么復雜,都會(huì )暴露出蹤跡。
這時(shí)就可以使用ODBC數據源方法,即使連接文件的內容外泄,他人也只能知道網(wǎng)站程序所使用的ODBC數據源名稱(chēng),而數據庫文件的存儲路徑和文件名卻無(wú)法找到。
手工修改數據庫連接文件(如conn.asp)中的內容,以及創(chuàng )建ODBC數據源。下面以筆者的論壇程序為例,首先將conn.asp文檔中的
DBPath = Server.MapPath("./data/1rtj0ma27xi.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
修改為:conn.open "rtjmaxi",其中“rtjmaxi”是指ODBC數據源名稱(chēng)。
接著(zhù)在IIS服務(wù)器中新建名為“rtjmaxi”的ODBC數據源,并在其中指定“1rtj0ma27xi.mdb”數據庫文件的位置即可,最后點(diǎn)擊“確定”按鈕完成配置。
不足之處:此方法不適合于租用Web空間的用戶(hù)使用,要想使用ODBC數據源方法,必須要有管理和維護IIS服務(wù)器的權限。
方法三、改變存儲位置
一般情況下,Access數據庫文件存放在相應的Web目錄中,很多黑客就是利用這種規律來(lái)查找并下載數據庫文件。
因此可以采用改變數據庫文件存儲位置的方法,將數據庫文件存放在Web目錄以外的某個(gè)文件夾中,讓黑客難以猜測存儲位置。
接著(zhù)修改好數據庫連接文件(如conn.asp)中的數據庫文件相應信息,這樣Access數據庫文件就安全多了。即使攻擊者通過(guò)連接文件找到數據庫文件的存儲路徑,由于數據庫文件存放在Web目錄以外的地方,攻擊者就無(wú)法通過(guò)HTTP方式下載數據庫文件。
例如,IIS網(wǎng)站的Web目錄位于“D:\wwwroot”下,在該Web目錄下的“DATA”文件夾中存放著(zhù)“1rtj0ma27xi.mdb”,現在筆者將該數據庫文件轉移到Web目錄以外的“D:\CPCW”文件夾下。然后修改數據庫連接文件,將
DBPath=Server.MapPath("./data/1rtj0ma27xi.mdb")
修改為
DBPath=Server.MapPath("../cpcw/1rtj0ma27xi.mdb")
這樣Access數據庫文件就安全多了。雖然數據庫文件沒(méi)有存放在Web目錄中,但并不影響ASP程序訪(fǎng)問(wèn)數據庫。
不足之處:此方法不適合于租用Web空間的用戶(hù)使用,因為將Access數據庫文件移至Web目錄之外,一般需要很大的權限。
以上方法,在不同程度上增強了Access數據庫文件的安全性,但大家不能將它們當成“仙丹妙藥”,畢竟網(wǎng)絡(luò )環(huán)境是復雜的,黑客的破壞手段也在不斷增強,大家可以根據自己的需要,選擇其中的多種方法配合使用,效果才理想,Access數據庫文件才會(huì )更安全。
呢 稱(chēng): | |
表 情: | |
內 容: |
評論內容:不能超過(guò) 1000 字,需審核,請自覺(jué)遵守互聯(lián)網(wǎng)相關(guān)政策法規。 |
驗證碼: | |
您發(fā)布的評論即表示同意遵守以下條款:
一、不得利用本站危害國家安全、泄露國家秘密,不得侵犯國家、社會(huì )、集體和公民的合法權益;
二、不得發(fā)布國家法律、法規明令禁止的內容;互相尊重,對自己在本站的言論和行為負責;
三、本站對您所發(fā)布內容擁有處置權。