摘要:目前,用于網頁設計的開發工具很多,而ASP(ActiveServer Pages)作為一種典型的服務器端網頁設計技術,它將腳本、超文本和強大的數據庫訪問功能融合在一起,集簡單性、高效性和易擴展性于一身。本案就以ASP+ACCESS為例,淺談數據庫漏洞和網絡安全防御的解決對策。
關鍵詞:ASP網絡安全防御對策
一、引言
隨著網絡技術和網絡規模的不斷發展以及電子教育類門戶的興起,許多大學院校都建立了自己的教育類門戶網站,針對網絡和計算機系統的攻擊已經屢見不鮮,在構建網站的時候,都會考慮網絡安全問題,對于網絡安全的投入較大,如使用防火墻、入侵檢測、大學院校防病毒等安全產品,但網站還是有被攻擊,甚至完全被控制的可能。ASP(ActiveServer Pages)作為一種典型的服務器端網頁設計技術,它將腳本、超文本和強大的數據庫訪問功能融合在一起,集簡單性、高效性和易擴展性于一身。本案就以ASP+ACCESS為例,淺談數據庫漏洞和網絡安全防御的解決對策。
二、安全問題分析
ASP+Access解決方案的主要安全隱患來自Access數據庫的安全性和ASP網頁設計過程中的安全漏洞。在ASP+Access網站中,如果獲得或者猜到Access數據庫的存儲路徑和數據庫名,則該數據庫就可以被下載到本地。
Access數據庫的加密機制比較簡單,即使設置了密碼,解密也很容易。設置密碼后的數據庫系統通過將用戶輸入的密碼與某一固定密鑰進行“異或”來形成一個加密串,并將其存儲在*。mdb文件從地址 “&H42” 開始的區域內。由于異或操作的特點是“經過兩次異或就恢復原值”, 因此,用這一密鑰與*。mdb文件中的加密串進行第二次異或操作,就可以輕而易舉地得到數據庫的密碼。
ASP程序采用的是非編譯性語言即用明文方式來編寫的,這大大降低了程序源代碼的安全性。
三、安全防范策略
3.1 非常規命名
提高數據庫的安全性,就要避免包含文件和Access數據庫文件被下載,并防止下載地址泄露,過濾變量輸入中的非法字符和改造危險的SQL語句,對數據庫內容和數據庫聯接字符串加密,將數據庫連接文件放到其他虛擬目錄下。
如使用虛擬主機,Access數據庫就命名為#文件名。asp,并且建一個臨時表,表中有一字段OLE對象輸入<%或%>等字符,IIS就會按ASP語法來解析,然后就會報告500錯誤ASP代碼,讓ASP不能被正確的解釋。在數據庫名前加上#,這樣,如碰到此類SQL查詢語句:“select*from d:\web\data\#data。asp。admin”, 系統會提示出錯,因為#在SQL語法中有表示日期的作用,語法出錯也就不會去執行查詢條件了。
如使用托管主機并且擁有主機權限,數據庫應放到IIS以外的目錄下。在IIS中,將數據庫屬性設置文件不可以讀取。如Web目錄在d:\web\Website目錄下,那么就把數據庫保存在d:\web\data目錄下。
3. 2使用ODBC數據源
如果源代碼失密后,數據庫也將隨ASP源代碼的失密而一同失密。如果使用ODBC數據源,就能有效地解決這樣的問題。所以,在ASP程序設計中,應盡量使用ODBC數據源,不要把數據庫名直接寫在程序中,例如:DBPath=Server。MapPath(”cmddb。mdb“),conn。Open”driver={Microsoft Access Driver(*。mdb)};dbq=“&DBPath,萬一泄漏了源程序,那么Access數據庫的名字就一覽無余,因此要在ODBC中設置數據源,在程序中這樣寫:conn。open”ODBC-DSNname“。
3.3止ASP源代碼的非法訪問
3.3.1對目錄設置不同的屬性
為了有效地防止ASP源代碼泄露,在設置Web站點時,將HTML文件同ASP文件分開放置在不同的目錄下,然后將HTML子目錄設置為 “讀(Read)”,將ASP子目錄設置為“執行(Execute)”,這不僅方便了對Web的管理,而且最重要的是提高了ASP程序的安全性,防止了程序內容被客戶所訪問。
3.3.2對ASP頁面進行加密
為防止ASP源代碼的非法訪問,可以對ASP頁面進行加密。一般有兩種方法對ASP頁面進行加密。一種是使用組件技術將編程邏輯封裝入DLL之中;另一種是使用微軟的Script
Encoder對ASP頁面進行加密。使用Script Encoders可以對當前目錄中的所有的ASP文件進行加密,并把加密后的文件統一輸出到相應的目錄中。Script Encoder只加密在HTML頁面中嵌入的ASP代碼,其他部分仍保持不變,仍然可以使用常用網頁編輯工具對HTML部分進行修改、完善,只是不能對ASP加密部分進行修改,否則將導致文件失效。
Script Encoder的運行程序是screnc。exe,格式如下:screnc[/s][/f][/xl][/l defLanguage][/e defExtension]inputfileoutputfile,其中參數:s:屏蔽屏幕輸出;f:指定輸出文件是否覆蓋同名輸入文件;xl:是否在。asp文件的頂部添加@Language指令;l:defLanguag指定缺省的腳本語言;e:defExtension指定待加密文件的擴展名。
通過對ASP+Acecss網頁應用系統安全性的研究,我們可以更好地防范校園網絡站點的非法入侵,解決數據庫的非法下載以及密碼被修改等問題,對于Web站點的安全性,還應該對Web服務器進行設置和管理,如設置用戶名、密碼、權限,設置IP地址限制等,對限制系統的非法入侵,保證站點的安全,提供必要的保障。
四、結術語
本文從比較實際的角度討論了ASP網站數據庫建設中的存在的問題,通過對這些問題的分析,將有助于加強網站建設者的安全意識,在程序設計和安全配置方面做好網站的安全工作。只有增強web服務器、數據庫文件、ASP頁面等的安全性,進行嚴密的程序設計,才能構建一個相對較為安全的網站。
參考文獻:
1. 張元金.ASP動態網站的安全保護機制研究 [J].網絡安全技術與應用.2007(08)
2. 周軍. ASP網站系統安全技術研究[J]. 計算機應用與軟件,2007. (05)