眾所周知,asp+access最大的安全隱患在於access數據庫可以被別人
下載,而現在提供的很多asp空間都是只支持access數據庫,這樣一來,
asp+access的安全問題就顯得很突出了。
1.Access數據庫的存儲隱患
在ASP+Access應用系統中,如果獲得或者猜到Access數據庫的存儲路
徑和數據庫名,則該數據庫就可以被下載到本地。
2.Access數據庫的解密隱患
由於Access數據庫的加密機制非常簡單,所以即使數據庫設置了密碼,
解密也很容易。該數據庫系統通過將用戶輸入的密碼與某一固定密鑰進行
異或來形成一個加密串,並將其存儲在*.mdb文件中從地址“&H42”開
始的區域內。由於異或操作的特點是“經過兩次異或就恢復原值”,因
此,用這一密鑰與*.mdb文件中的加密串進行第二次異或操作,就可以輕
鬆地得到Access數據庫的密碼。基於這種原理,可以很容易地編制出解密
程式.
由此可見,無論是否設置了數據庫密碼,只要數據庫被下載,其信息就沒有任何安全性可言了。
3.程序設計中的安全隱患
ASP代碼利用表單(form)實現與用戶交互的功能,而相應的內容會反
映在瀏覽器的地址欄中,如果不採用適當的安全措施,只要記下這些內
容,就可以繞過驗證直接進入某一頁面。例如在瀏覽器中敲入“……
page.asp?x=1”,即可不經過表單頁面直接進入滿足“x=1”條件的頁
面。因此,在設計驗證或註冊頁面時,必須採取特殊措施來避免此類問題
的發生。
==========
解決方案
==========
提高數據庫的安全性
由於Access數據庫加密機製過於簡單,因此,如何有效地防止Access
數據庫被下載,就成了提高ASP+Access解決方案安全性的重中之重。
1.非常規命名法
防止數據庫被找到的簡便方法是為Access數據庫文件起一個複雜的非常
規名字,並把它存放在多層目錄下。例如,對於網上書店的數據庫文件,
不要簡單地命名為“book.mdb”或“store.mdb”,而是要起個非常規的
名字,例如:faq19jhsvzbal.mdb,再把它放在
如./akkjj16t/kjhgb661/acd/avccx55之類的深層目錄下。這樣,對於