前言:網絡是沒有絕對全安的,這是一句經典的名言,我也不用多說了!
今天主要為大家演示一下,怎麼下載Access數據庫和防止Access數據庫被下載。
參考了部分文章,加入了自己的一些看法。
攻:
一、發揮你的想象力,修改數據庫文件名,從理論上講不一定能防止被下載。修改數據庫名,其目的就是防止我們猜到數據庫而被下載。但是萬一我們猜到數據庫名,就直接可以下載了。所以這不能保證100不能被下載。猜解數據庫的常用的辦法就是寫程序去猜解數據庫名,判定WEB返回的是不是404錯誤,假如提交一個MDB文件,沒有返回404錯誤,那就猜對了,就直接下載。當然這有一定的局限性,因為假如數據庫名非常復雜。會產生大量的日志。治理員可能早發現了。並且還有猜解的時間會變得很長。
二:數據庫名後綴改為ASA、ASP等,不一定能防止被下載。IIS在通過ASP.dll處理.ASP擴展名文件的時候,對以外的內容,不做任何處理就直接輸出,但是MDB文件中假如沒有之類的ASP標實符,我們直接在IE中輸入URL返回在IE中的數據,就是MDB文件的數據,我們直接用FlashGET之類的軟件就可以下載,下載後改名這後就可以用了。
三:數據庫名前加“#”,一定能防止被下載。
有些人誤認為:“只需要把數據庫文件前名加上#、然後修改數據庫連接文件(如conn.ASP)中的數據庫地址。原理是下載的時候只能識別#號前名的部分,對於後面的自動去掉。”
這樣是比較安全的。這只是對於一般的人無法下載。因為他們不知道,也沒有去了解有關IE編碼的技術。在編碼中我們用#來代替#號。所以我們假如有一個數據庫是:http://www.xxx.com/data/#datapro.mdb我們直接在IE中輸入:http://www.xxx.com/data/#datapro.mdb就可以下載了:
四:加密數據庫。
有些人認為,把Access數據庫進行加密,就算得到數據庫他也沒有辦法得到裡面的任何信息。這是一種錯解。下載後,2秒鐘碼解出數據庫密碼。Access數據庫的加密機制是非常脆弱的。加密後數據庫系統通過將用戶輸入的密碼與某一固定密鑰進行“異或”來形成一個加密串,並將其存儲在*.mdb文件從地址“&H42”開始的區域內。用程序可以輕松的寫出破解代碼。網上已經有這樣的程序了。現在我為大家推薦一款比較老,但非常實用的破解數據庫密碼程序:Accesskey.exe
五:我們用非凡請求讓腳本解析出錯,得到數據庫路徑。
在網絡上,有很多人直接采用以下代碼,來連接數據庫,看:....DB_Path="Data/ABCD1234!@#1po.mdb"DB_String="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.MapPath(DB_Path)SetConn=Server.CreateObject("ADODB.Connection")Conn.OpenDB_String....數據庫文件名也夠復雜了,用程序破解,我想是沒有人想去嘗試的。像這樣的連接方式我們都可以直接取得他的數據庫路徑。由於這種方法危險性太大了,知道本方法的人很少。這裡不敢公布。一旦公布不知道有多少網站的數據庫會被下載。等以後看情況再說吧。所以這裡我只為大家提供臨時補丁。在Conn.OpenDB_String上面加上一句話:ONERRORRESUMENEXT就可以解決這個問題.