石紅春
摘要:本文討論了網站Access數據庫的安全性問題,介紹了防止Access數據庫被惡意下載的常見方法,對中小型網站數據庫的安全管理提供了相應解決方法。
關鍵詞:Access數據庫;安全性
1引言
Access數據庫具有操作簡單、界面友好等特點,是中小型網站數據庫的首選。Access數據庫在帶來便捷的同時,也帶來了不容忽視的安全問題。攻擊者一旦找到數據庫文件的存儲路徑和文件名,后綴名為“mdb”的Access數據庫文件就會被下載,后果不可估量。
2 Access數據庫安全性的弱點
Access數據庫在安全性方面,其弱點具體表現為:
①安全性不夠,用戶級密碼容易破解;
②并發(fā)數為255,對高強度操作適應性差,若服務器配置不高,網絡不暢通,編程的方法不佳,多人同時訪問就能導致MDB損壞;
③每個數據庫文件最大限制只有2G,不適合做大型網站的數據庫。
3解決網站Access數據庫安全性的常見方法
根據本人在動態(tài)網站開發(fā)過程中的實際經驗,為保障后臺數據庫的安全,將防止Access數據庫被下載的方法歸納如下:
方法一:取復雜的數據庫文件名
此方法最省事。若攻擊者通過第三方途徑獲取到數據庫的路徑,此方法便失效。另外,數據文件通常都較大,起再復雜的文件名也容易分析出來,故保密性為最低。
方法二:數據庫名后綴改為asa、asp等
這是最常用的方法。將數據庫擴展名更改為asa或asp后,還需配合一些其他的設置才能更安全。如在數據庫中新建表,表名任取,在表中添加一個OLE對象的字段,然后添加一個記錄,插入事先建好的文本文件(內容為“<%”或者“%>”)。
其原理是:在改名后的庫文件中加入“<%”或“%>”,llS就會按ASP語法來解析,就會報告500錯誤,即可防止下載Access數據庫。
方法三:數據庫名前加“#”
在數據庫文件名前加上#,然后修改數據庫連接文件(如:oonnasp)中的數據庫地址。其原理是下載的時候只能識別#號前名的部分。對于后面的自動去掉。另外,在數據庫文件名中保留一些空格也起到類似作用,由于HTTP協(xié)議對地址解析的特殊性,空格會被編碼為“%”。即使暴露了數據庫地址,一般情況下也無法下載到原始數據庫文件。
方法四:加密數據庫
首先選取“工具”一“安全”一“加密/解密數據庫”,選取數據庫(如:datamdb),單擊“確定”,出現“數據庫加密后另存為”的窗口,存為:datal mdb。以上的動作對數據庫文件加以編碼,目的是為了防止他人查看數據庫文件的內容。
接下來為數據庫加密,先打開經過編碼了的datal mdb,選擇“獨占”方式。然后選取菜單中的“工具一安全一設置數據庫密碼”,輸入密碼即可。即使他人得到了datal mdb文件,沒有密碼就無法看到datal mdb的內容。
加密后要修改數據庫連接頁,如:corm open“d river=fmicrosoftaccess driver(。mdb)}:uid=admin:pwd=數據庫密碼;dbq=數據庫路徑”。
在數據庫連接頁中的密碼沒有被泄露的情況下,數據庫即使被人下載了,也無法打開。
方法五:數據庫放在Web目錄外或將數據庫連接文件放到其他虛擬目錄下
若Web目錄是e:\webroot,可以把數據庫放到e\data文件夾內,在e:\webroot里的數據庫連接頁中修改數據庫連接地址為:“/data/數據庫名”的形式,這樣數據庫可以正常調用,但無法下載。因為它不在Web目錄里!
方法六:使用ODBC數據源
在ASP等程序設計中,如果有條件,應盡量使用ODBC數據源,不要把數據庫名寫在程序中,否則,數據庫名將隨ASP源代碼的失密而一同被暴露。
如果使用ODBC數據源,就不會存在這樣的問題了。但這樣處理的結果是:效率很低。速度變慢;遷移也不方便,必須重新設置數據源。
方法七:添加數據庫名的(如MDB的)擴展映射
通過修改llS設置來實現,適合有l(wèi)lS控制權的管理員。只要修改一處,整個站點的數據庫都可以防止被下載。
在lIS屬性—主目錄—配置—映射—應用程序擴展那里添加mdb文件的應用解析。選擇的DLL(或EXE等),最好不要選擇aspdll。這樣別人下載數據庫時就出現404或500等錯誤。
4小結
沒有最“安全”,只有更“安全”。因此,增強Access數據庫文件的安全性也只是相對的。如果要使網站數據庫更加安全,我們就應該考慮選擇Sql server等安全性更高的數據庫了。