劉洪民
(安徽省六安市氣象局 安徽 237011)
中小型網站大多采用 Access作為網絡數據庫,網站基于B/S架構,利用ODBC連接Access數據庫,采用Asp作為網絡編程語言。Asp服務器端程序+Access后臺數據庫模式適合于數據記錄量較小、訪問量較低的中小型網站系統,屬于非服務器級,由于Access數據庫的ODBC驅動程序支持SQL指令集,且執行效率高,因此該模式是一個精練實用的常用模式。
網站主要由網站首頁和后臺管理兩部分組成,而網站設計的重點工作是后臺管理程序的編寫,通過后臺管理平臺,對整個網站信息、內容進行添加、刪除、修改等操作,這就涉及到網站的安全性問題,因為管理員帳號密碼等信息都存儲在數據庫文件中,所以數據庫安全性是網站技術人員重點考慮和關注的問題。
1.1 表對象
Access文件包括表、查詢、窗體、報表、頁、宏、模塊共七個對象。Web數據庫設計時一般只用到表和查詢兩個對象。表由結構與數據記錄兩個部分組成。結構內容包括字段名稱、數據類型、長度、精確度等屬性組成;表的每一行即為一個數據記錄,所有數據記錄的集合構成一個表。在表存放數據記錄之前,必須定出結構,而表的結構定義工作即決定表將擁有哪些字段以及這些字段的規格,所謂字段的規格是指字段名稱、數據類型、大小、精確度、小數位數等屬性。
1.2 查詢對象
Access提供了查詢設計視圖,Select-SQL命令及各種查詢向導來輔助完成所需的查詢。查詢的基本功能是:選取查詢,查詢不會修改表內的數據,查詢雖然是一個存儲在數據庫中的數據庫對象,但所存放的并不是查詢所得的信息,而是如何去取得所需信息的方法與定義(即相關的SQL命令語句),執行查詢時所得信息不會存儲在數據庫中,是用SQL命令對表進行“篩選”的結果。
瀏覽器是操作系統的核心,用戶通過瀏覽器向網站服務器發出請求,服務器端Asp網絡程序響應執行,并將處理結果返回瀏覽器,供用戶查看。建立Asp與Web數據庫的運行平臺,目前普遍使用的PC機均能滿足硬件要求,當然,硬件配置越高檔越好;軟件要求,最好是Windows 2003 Servers以上服務器操作系統。

圖1 瀏覽器打開Asp網頁到存取Access數據庫的過程
3.1 密碼文件
后臺管理員的帳號、密碼一般也存放在數據庫中,如果網頁瀏覽者知道存儲密碼文件的名稱及目錄,就可以在瀏覽器地址欄輸入相應文件路徑下載下來,有些人的做法是對密碼文件取個難猜的名字,讓用戶無法猜出,而比較正規的做法是對密碼文件進行“編碼”及“加密”。假設存儲密碼的文件為users.mdb,它是一個沒有編碼及加密的數據庫。
3.2 對users.mdb編碼和加密
啟動Access,暫不要啟動任何數據庫文件。選取菜單“工具→安全→加密/解密數據庫”,待出現“數據庫加密/解密”窗口時,選取users.mdb數據庫,點擊“確定”按鈕,接著又會出現“數據庫加密后另存為”窗口,在此窗口的“文件名”字段中輸入users2.mdb,點擊“保存”按鈕,接著users.mdb就會被編碼,并存儲為users2.mdb。以上動作只是對數據庫文件進行編碼,并不是對數據庫設置密碼。
3.3 數據庫文件加密
首先以“獨占模式”啟動users2.mdb,選取菜單“工具→安全→設置數據庫密碼”,接著輸入密碼即可。以上步驟已成功為users2.mdb設置了密碼,如使用Access啟動這個數據庫,則要求輸入密碼,輸入正確密碼后,才能啟動數據庫。
3.4 加密數據庫的連接程序(Asp程序)
在網絡程序中,如要啟動含有密碼的.mdb數據庫,只需要在“數據庫連接”程序上稍做添加,具體程序如下:

3.5 Access數據庫文件的加密原理
Access數據庫的加密原理是對密碼字符串進行異或操作,而在二進制串中的異或運算是可逆的(即用設定的二進制串與密碼對應二進制串異或的結果與設定二進制串異或可得密碼對應的二進制串),所以加密數據庫可被下載下來輕易破解,從而打開.mbd文件,查看密碼明文。
3.6 常用的加密算法
目前常用的加密算法是 MD5加密算法,MD5的全稱是Message Digest Algorithm 5。Message-Digest泛指字節串(Message)的Hash變換,就是把一個任意長度的字節串變換成一定長的大整數。MD5將任意長度的"字節串"變換成一個128bit的大整數,它是一種不可逆的加密算法,即密碼不是以明文出現,而是以經 MD5算法加密后的編碼出現,連管理員和操作系統都無法讀取密碼明文,此加密算法安全性高,很難破解,是目前比較流行的一種加密算法。
如果瀏覽用戶不把.mdb文件下載下來,就無法進行暴力破解,筆者在實際應用中常用以下方法防止.mdb數據庫被下載:
4.1 為.mdb數據庫文件取一個位數多且難猜的文件名,讓上網用戶難以猜出;
4.2 在數據庫文件名中添加“#”,因為“#”屬于特殊字符,瀏覽器只解釋到“#”之前字符串,到“#”字符就結束解釋;空格號也可以起到“#”作用,但必須是文件名中間出現空格。
4.3 將.mdb改成.asp后綴,如將users.mdb改成users.asp,瀏覽器也無法直接下載。
通過以上設置,數據庫的安全性已經基本滿足工作需要,特別適合于中小型網站,其操作靈活、移植備份方便、運行環境簡單,技術人員容易掌握,且對硬件、軟件的要求不是很高,可以說是短小精悍,但數據記錄量不能太大,科學研究表明,當數據記錄量超過十萬條時,其查詢效率會明顯下降,因此只適合于要求不是很高的中小型網站系統。
[1]王國榮.Web數據庫[M].北京:人民郵電出版社,1999.3.
[2]章立民.Access 2003高手攻略[M].北京:中國鐵道出版社,2004.7.