前言:網(wǎng)絡(luò)是沒有絕對全安的,這是一句經(jīng)典的名言,我也不用多說了! 今天主要為大家演示一下,怎么下載Access數(shù)據(jù)庫和防止Access數(shù)據(jù)庫被下載。 參考了部分文章,加入了自己的一些看法。
攻:
一、發(fā)揮你的想象力,修改數(shù)據(jù)庫文件名,從理論上講不一定能防止被下載。修改數(shù)據(jù)庫名,其目的就是防止我們猜到數(shù)據(jù)庫而被下載。但是萬一我們猜到數(shù)據(jù)庫名,就直接可以下載了。所以這不能保證100%不能被下載。猜解數(shù)據(jù)庫的常用的辦法就是寫程序去猜解數(shù)據(jù)庫名,判斷WEB返回的是不是404錯誤,如果提交一個MDB文件,沒有返回404錯誤,那就猜對了,就直接下載。當(dāng)然這有一定的局限性,因為如果數(shù)據(jù)庫名非常復(fù)雜。會產(chǎn)生大量的日志。管理員可能早發(fā)現(xiàn)了。并且還有猜解的時間會變得很長。
二:數(shù)據(jù)庫名后綴改為ASA、ASP等,不一定能防止被下載。IIS在通過asp.dll處理.asp擴(kuò)展名文件的時候,對以外的內(nèi)容,不做任何處理就直接輸出,但是MDB文件中如果沒有之類的ASP標(biāo)實符,我們直接在IE中輸入URL返回在IE中的數(shù)據(jù),就是MDB文件的數(shù)據(jù),我們直接用FLASHGET之類的軟件就可以下載,下載后改名這后就可以用了。
三: 數(shù)據(jù)庫名前加“#”,一定能防止被下載。
有些人誤認(rèn)為: “只需要把數(shù)據(jù)庫文件前名加上#、然后修改數(shù)據(jù)庫連接文件(如conn.asp)中的數(shù)據(jù)庫地址。原理是下載的時候只能識別 #號前名的部分,對于后面的自動去掉!
這樣是比較安全的。這只是對于一般的人無法下載。因為他們不知道,也沒有去了解有關(guān)IE編碼的技術(shù)。在編碼中我們用%23來代替#號。所以我們?nèi)绻幸粋數(shù)據(jù)庫是: http://www.xxx.com/data/#datapro.mdb 我們直接在IE中輸入: http://www.xxx.com/data/%23datapro.mdb 就可以下載了:
四:加密數(shù)據(jù)庫。
有些人認(rèn)為,把ACCESS數(shù)據(jù)庫進(jìn)行加密,就算得到數(shù)據(jù)庫他也沒有辦法得到里面的任何信息。這是一種錯解。下載后,2秒鐘碼解出數(shù)據(jù)庫密碼。Access數(shù)據(jù)庫的加密機(jī)制是非常脆弱的。加密后數(shù)據(jù)庫系統(tǒng)通過將用戶輸入的密碼與某一固定密鑰進(jìn)行“異或”來形成一個加密串,并將其存儲在*.mdb文件從地址“&H42”開始的區(qū)域內(nèi)。用程序可以輕松的寫出破解代碼。網(wǎng)上已經(jīng)有這樣的程序了。現(xiàn)在我為大家推薦一款比較老,但非常實用的破解數(shù)據(jù)庫密碼程序:accesskey.exe
五:我們用特殊請求讓腳本解析出錯,得到數(shù)據(jù)庫路徑。
在網(wǎng)絡(luò)上,有很多人直接采用以下代碼,來連接數(shù)據(jù)庫,看: .... DB_Path = "Data/ABCD1234!@#1po.mdb" DB_String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DB_Path) Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open DB_String .... 數(shù)據(jù)庫文件名也夠復(fù)雜了,用程序破解,我想是沒有人想去嘗試的。 像這樣的連接方式我們都可以直接取得他的數(shù)據(jù)庫路徑。由于這種方法危險性太大了,知道本方法的人很少。這里不敢公布。一旦公布不知道有多少網(wǎng)站的數(shù)據(jù)庫會被下載。等以后看情況再說吧。所以這里我只為大家提供臨時補(bǔ)丁。在Conn.Open DB_String上面加上一句話: ON ERROR RESUME NEXT 就可以解決這個問題.
出處:藍(lán)色理想
責(zé)任編輯:藍(lán)色
上一頁 下一頁 Access 數(shù)據(jù)庫的防守
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|