標題標題  顯示論壇會員列表名單  搜索論壇搜索  HelpHelp
  注冊注冊  登入登入
電腦綜合討論區
 DoReMe : 電腦綜合討論區
主題 話題: 數據庫防下載經典方法 回復發表新主題
作者
貼子內容 << Prev Topic下一個主題 >>
koioggo
Groupie
Groupie


加入: 2004/5月/22
Online Status: Offline
回復: 58
Posted: 2004/5月/26 10:41上午 | IP記錄 引用 koioggo

數據庫防下載經典方法
                                       防止數據庫被下載的幾個方法


前言:很多動態站點大量應用了數據庫,數據庫理所當然成了一個站點的核心文件。一旦數據庫被人下載,極有可能被惡意人士破壞網站 。或者竊取資料。實在痛心啊。有什麼方法可以防止數據庫被人下載呢?

下面提供的的方法分別適用使用虛擬主機空間的用戶和有IIS控制權的用戶!
     一:購買虛擬主機空間的,適合沒有IIS控制權

1:發揮你的想像力 修改數據庫文件名
這個是最基本的。我想現在也沒有多少連數據庫文件名都懶得改的人吧? 至於改成什麼,你自己看著辦,至少要保證文件名複雜,不可猜測性。當然這個時候你的數據庫所在目錄是不能開放目錄瀏覽權限的!

2:數據庫名後綴改為ASA、ASP等
這個聽說很流行,不過我測試了好多次,發現並不理想,如果真正要起到防止下載的作用,要進行一些2進制字段添加等設置,---一 句話,繁而複雜(如果你的數據庫有很多的話,這個方法實在不是很好)

3:數據庫名前加「#」
只需要把數據庫文件前名加上#、然後修改數據庫連接文件(如conn.asp)中的數據庫地址。原理是下載的時候只能識別 #號前名的部分,對於後面的自動去掉,比如你要下載:http://www.pcdigest.com/date/#123.mdb(假設存在的話)。無論是IE還是FLASHGET等下到的都是http://www.pcdigest.com/date/index.htm(index.asp、default.jsp等你在IIS設置的首頁文檔)
另外在數據庫文件名中保留一些空格也起到類似作用,由於HTTP協議對地址解析的特殊性,空格會被編碼為"%",如http://www.pcdigest.com/date/123 456.mdb,下載的時http://www.pcdigest.com/date/123%456.mdb 。而我們的目錄就根本沒有123%456.mdb這個文件,所以下載也是無效的這樣的修改後,即使你暴露了數據庫地址,一般情況 下別人也是無法下載!

4:加密數據庫
用ACCESS將你的數據庫以獨佔方式打開後,在工具-安全-設置數據庫密碼,加密後要修改數據庫連接頁, 如:
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=數據庫密碼;dbq=數據庫路徑"
這樣修改後,數據庫即使被人下載了,別人也無法打開(前提是你的數據庫連接頁中的密碼沒有被洩露)
但值得注意的是,由於Access數據庫的加密機制比較簡單,即使設置了密碼,解密也很容易。該數據庫系統通過將用戶輸入的密碼 與某一固定密鑰進行「異或」來形成一個加密串,並將其存儲在*.mdb文件從地址「&H42」開始的區域內。所以一個好 的程序員可以輕鬆製作一個幾十行的小程序就可以輕鬆地獲得任何Access數據庫的密碼。因此,只要數據庫被下載,其信息安全依 然是個未知數。

 

     二:有主機控制權 (當然虛擬空間的設置在這裡依然可以用)
5:數據庫放在WEB目錄外
如你的WEB目錄是e:\webroot,可以把數據庫放到e:\data這個文件夾裡,在e:\webroot裡的數據庫連接 頁中
修改數據庫連接地址為:"../data/數據庫名" 的形式,這樣數據庫可以正常調用,但是無法下載的,因為它不在WEB目錄裡!這個方法一般也不適合購買虛擬空間的用戶。

6:使用ODBC數據源。
在ASP等程序設計中,如果有條件,應盡量使用ODBC數據源,不要把數據庫名寫在程序中,否則,數據庫名將隨ASP源代碼的失 密而一同失密,例如: DBPath = Server.MapPath(「../123/abc/asfadf.mdb 」)
conn.open 「driver={Microsoft Access Driver (*.mdb)};dbq=」& DBPath
可見,即使數據庫名字起得再怪異,隱藏的目錄再深,ASP源代碼失密後,也很容易被下載下來。如果使用ODBC數據源,就不會存 在這樣的問題了: conn.open 「ODBC-DSN名」 ,不過這樣是比較煩的,目錄移動的話又要重新設置數據源了,更方便的方法請看第7,8法!

7:添加數據庫名的如MDB的擴展映射
這個方法就是通過修改IIS設置來實現,適合有IIS控制權的朋友,不適合購買虛擬主機用戶(除非管理員已經設置了)。這個方法 我認為是目前最好的。只要修改一處,整個站點的數據庫都可以防止被下載。無須修改代碼即使暴露目標地址也可以防止下載,如圖1、 2設置:

此主題相關圖片如下:


我們在 IIS屬性---主目錄---配置---映射---應用程序擴展那裡添加.mdb文件的應用解析。注意這裡的選擇的DLL(或E XE等)似乎也不是任意的,選擇不當,這個MDB文件還是可以被下載的,  注意最好不要選擇選擇asp.dll等。你可以自己多測試下
這樣修改後下載數據庫如:http://192.168.1.5/HaoBbs/data/dvbbs6.mdb。就出現(404或500等錯誤)

8:使用.net的優越性
動網的木鳥就寫過一個防非法下載文件的「WBAL 防盜鏈工具」。具體可以登陸http://www.9seek.com/WBAL/
不過 那個只實現了防止非本地下載的 ,沒有起到真正的防下載數據庫的功能。不過這個方法已經跟5法差不多
可以通過修改.NET文件,實現本地也不能下載!

這幾個方法中,只有第7和8個是統一性改的,一次修改配置後,整個站點的數據庫都可以防止下載,其他幾個就要分別修改數據庫名和 連接文件,比較麻煩,不過對於虛擬主機的朋友也只能這樣了!

其實第6個方法應該是第5個方法的擴展,可以實現特殊的功能,但對於不支持.net的主機或者怕設置麻煩的話,還是直接用第5個 方法了,而且默認情況下第6個方法,依然可以通過複製連接到同主機的論壇或留言本發表,然後就可以點擊下載了(因為這樣的引用頁 是來自同主機的)

這幾個方法各有長短,請自己選擇性地使用。這些方法也不是絕對的安全,還需要網站管理員平時注意一些系統的安全,以及寫ASP/ ASP.NET/JSP代碼本身的安全 ,否則依然是有可能被人下載或者修改數據庫的!

Back to Top 查看 koioggo's 資料 搜索其他貼子 koioggo 訪問 koioggo's
 

如果你想回復的話你必須首先 login
如果你還沒有注冊的話你必須首先 注冊

  回復發表新主題
顯示可打印的頁面 顯示可打印的頁面

論壇跳轉
不能 張貼新論題在這個討論版
不能 回應論題在這個討論版
不能 刪除你的發言在這個討論版
不能 編輯你的發言在這個討論版
不能 新增投票標題在這個討論版
不能 在這個討論版投票

Edit by doreme Forums version 2004
Welcome ©2001-2004 doreme Guide

This page was generated in 0.3281 seconds.

 
保養品
保養品, Skin Care
www.elady.tw
Makeups Wholesale
Wholesale Cosmetics SkinCares
lungjyi.com
保養品批發
名牌保養品、保養品批發
www.perfume.com.tw/skincare
Wholesale Perfumes
Fragrances Perfumes Wholesale
lungjyi.net