下面的方法分别适用有iis控制權和 虛拟空間的使用者!
2:修改資料庫字尾名。如改成database.inc、database.dwg、database.dll等等,請注意要在iis中設定這些字尾的檔案可以被解析,這樣直接通路這個資料庫檔案時将會象程式一樣被執行而不會被下載下傳,以避免資料庫被其他人擷取而使網站安全受到影響。( 請不要修改為asp、asa這樣的字尾名,因為黑客仍可以通過asp的漏洞進行代碼攻擊進而擷取資料庫的名稱達到攻擊資料庫的目的)
3:将資料庫database.mdb改成#database.mdb。這是最簡單有效的辦法。假設别人得到你的資料庫位址是:
http://www.yourserver.com/folder/#data#base.mdb,但實際上得到将是:http://www.yourserver.com/folder/,因為#在這裡起到間斷符的作用。位址串遇到#号,自動認為通路位址串結束。注意:不要設定目錄可通路。用這種方法,不管别人用何種工具都無法下載下傳,如flashget,網絡螞蟻等。
注:隻要資料庫檔案名任何地方含有'#',别人都無法正常下載下傳。同理,空格号也可以起到'#'号作用,但必須是檔案名中間出現空格。
4:修改iis設定。 隻要修改一處,無需修改代碼,即使暴露了資料庫的目标位址,整個站點的資料庫仍然可以防止被下載下傳。
我們在 iis屬性---主目錄---配置--- 映射---添加對.mdb檔案的應用解析。
即任意找個.dll檔案解析mdb檔案。如圖:
通過以上設定,資料庫可正常使用,但在直接下載下傳資料庫mdb檔案時則會顯示404錯誤。
5:加密資料庫 适合沒有iis控制權
先在本機上打開access伺服器,從菜單欄上,點“檔案”->“打開”,在彈出的視窗裡,選中你要打開的access資料庫,點右下方的“打開”按鈕時,應注意,要選擇“以獨占方式打開(v)”如圖:
access 資料庫打開後,就可以設定密碼了,如圖:
加密後修改資料庫連接配接檔案:conn.asp, 然後找到下面這段代碼:
sub openconn()
on error resume next
connstr = "provider = sqloledb; user id = " & sqlusername & "; password = " & sqlpassword & "; initial catalog = " & sqldatabasename & "; data source = " & sqlhostip & ";"
else
修改這行 connstr = "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(db) 為下面樣式
connstr = "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(db) &";jet oledb:database password=資料庫的密碼;persist security info=false"
這幾種方法中,隻有第4種方法是一次修改配置後,整個站點的資料庫都可以防止下載下傳;其他幾種方法,需要修改資料庫連接配接檔案。
這幾種方法各有長短,請自己選擇性地使用,也可幾種方法同時使用。但最主要還是需要系統和iis本身設定足夠安全并且加上好的防火牆軟體, 否則再好的安全設定也仍然會被攻破!
最新内容請見作者的github頁:http://qaseven.github.io/