ASP+Access電子商務網站安全保障思索
時間:2022-03-31 04:57:00
導語:ASP+Access電子商務網站安全保障思索一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
隨著電子商務的蓬勃發展,電子商務購物網站的設計具有非常重要的意義。ASP(ActiveServerPages)由于編寫簡單、維護方便、功能豐富等特點獲得了廣泛的應用,是電子商務網站建設中的常見工具。與此同時,由于Access數據庫具有操作簡單、功能齊全、用戶界面友好、使用維護方便等優點而擁有較大的用戶群體。目前,asp+access是中小型電子商務網站的首選方案。但是,該解決方案在帶給我們便捷的同時,也帶來了嚴峻的安全問題。本文主要從ASP和Access兩方面討論了電子商務建設中存在的幾種常見的安全性問題及其解決方法。
1電子商務網站的安全分析
電子商務網站受到攻擊后產生的危害主要體現在修改網頁內容、竊取商業數據和個人賬戶資料、惡意破壞網站以及竊取程序文件等?;贏SP技術和Access數據庫建設的電子商務網站,主要的安全隱患一方面來自Access數據庫的安全性,另一方面來自ASP源文件和ASP網頁設計過程中的安全意識。
1.1Access數據庫的存儲隱患
采用Access數據庫建設的電子商務網站中,如果有人獲得或猜到了數據庫的存儲路徑和數據名,那么該數據庫就可以被下載到本地。例如,某電子商務網站的URL(UniformResourceLocator)是,而網站使用的數據庫ec.mdb就放在根目錄/下。那么只要在在瀏覽器地址欄中輸入地址:http:///ec.mdb,數據庫ec.mdb就可以輕松的被下載了。
1.2Access數據庫的解密隱患
由于Access數據庫的加密機制比較簡單,即使設置了密碼,也很容易解密。該數據庫系統通過將用戶輸入的密碼與某一固定的密鑰進行異或來形成一個加密串,并將其存儲在*.mdb文件從地址“&H24”開始的區域中。根據異或操作的特點,可以很輕易的編制出解密程序。所以,無論數據庫是否設置密碼,只要數據庫被下載,其信息就沒有任何安全性可言了。
1.3ASP源文件的安全隱患
由于ASP程序是非編譯性語言,采用ASP技術編寫的腳本程序使用明文(plaintext)編寫,一旦ASP應用程序到網絡環境中,源代碼就很容易泄漏,大大降低了源程序代碼的安全性。因此任何人闖入站點,那么就可以獲得全部的ASP應用程序源代碼。
1.4ASP程序設計中的安全隱患
ASP代碼利用表單實現和用戶的交換的功能,在不同的ASP頁面之間傳遞變量時,其內容會反映在瀏覽器的地址欄中。如果不采取適當的安全措施,那么只要記住這些內容就可以繞過用戶身份驗證而直接進入某些頁面。例如,只要在瀏覽器的地址攔輸入,就可以繞過驗證而直接進入滿足條件“id=10”的頁面。所以在設計注冊和驗證的頁面時必須采取相應的措施來預防此類問題的發生。
1.5SQL注入漏洞
很多電子商務網站都采用客戶身份認證方式來達到內部網頁加密的目的,即用戶在登錄窗口輸入正確的用戶名和密碼就可以訪問網頁,否則報錯。然而,“adminor1=1”成為攻破該類認證系統的萬能密碼,類似的密碼還可以有無數個。一般的電子商務網站在設計登錄驗證時使用下面的SQL語句來驗證用戶的合法性:Sql="select*fromuserwhereusername="&request.form("username")&"''''andpasswd=''''"&request.form("passwd")&"''''"此時,用戶只要根據sql構造一個特殊的用戶名和密碼,如:admin''''or''''1''''=''''1。就可以成功登錄。將程序和用戶數據合起來將變成:Sql=”select*fromuserwhereusername=adminandpasswd=''''''''or''''1''''=''''1''''”由于1=1是衡成立的,所以這個查詢的結果也衡為真,因此就會登錄成功。
2提高電子商務網站安全性的方法
2.1防止數據庫被下載
1)非常規命名。為數據庫文件起一個非常復雜的非常規名字且存放在多層目錄下,可有效防止數據庫被下載。例如,電子商務網站的數據庫文件,不把它命名“ec.mdb”,而給它一個非常規的命名“adf3kxgce.mdb”,再把它放在如…/fsawdk5kl/rtr6we/jhlj9/i-uergh3p之類的深沉目錄下。這樣就加大了黑客通過猜測的方式來獲得數據庫的難度。
2)使用ODBC數據源。使用ODBC數據源也可以防止數據庫被下載。在ASP程序設計中,應該盡量使用ODBC數據源,而不要把數據庫名寫在程序中。這樣即使ASP代碼泄露,數據庫名也不會被知道。例如,在建立了一個數據源user后,打開數據庫的ASP源碼如下:setconn=server.createobject(“adodb.Connection”)conn.ConnectionString=″dsn=user;uid=;pwd=″conn.open這樣,在ASP程序中就不會出現源數據庫的任何相關目錄和名稱,大大提高了數據庫的安全性。
3)利用.MDE文件保護數據庫。MDE是一種經過編譯的特殊形式的數據庫,把數據庫文件轉換為MDE文件后,可以完全保護Access中的代碼免受非法訪問。將.mdb文件轉換為MDE文件時,Access將編譯所有模塊并刪除所有可編輯的源代碼,然后壓縮目標數據庫,而原始的.mdb文件不會受到任何影響。
4)改數據庫擴展名。由于.inc文件在IIS上默認是不允許瀏覽的,因此根據IIS的這一特點可以把數據庫的后綴名改為.inc。這種通過在IIS上把數據庫所在的目錄設置為不可讀的方法也可以防止數據庫被下載。
5)數據庫加密。對數據庫中的信息進行加密,可以保證即使在黑客下載到數據庫文件并打開數據庫后,也不能有效獲取數據。目前的加密算法有很多,常用的專用密鑰加密(如:3DES、IDEA、RC4和RC5)和公鑰加密(如:RSA、SEEK、PGP和EU)能很好的保證數據的保密性、完整性和真實性。
2.2對ASP頁面進行加密
為有效的防止ASP源代碼泄露,必須對ASP頁面進行加密。ASP頁面加密一般有兩種方法:一種是使用組件技術將程序代碼封裝入DLL中;另一種是使用微軟的ScriptEncoder對ASP頁面進行加密。由于使用組件技術需對每段代碼組件化,且由于操作煩瑣,工作量較大等原因而很少使用。一般使用ScriptEncoder對ASP頁面進行加密,它不但操作簡單,而且加密效果也很好,只需掌握一些基本的命令即可,而且可以處理批量的ASP頁面。
2.3利用Session對象設計注冊和驗證頁面
為防止未注冊的用戶繞過注冊頁面的驗證而直接進入應用系統,可以采用Session對象來進行注冊驗證。例如,本系統利用下面的代碼來實現注冊頁面的驗證:<%''''讀取用戶的賬號和密碼User_ID=Request(“UserlD”)Password=Request(“Password”)''''檢查UserID及Password是否正確IfUserID<>“Name”orPassword<>“password”ThenResponse.Write“你輸入的賬號不正確!”Response.EndEndIf''''將Session對象設置為通過驗證狀態Session(“Passed”)=True%>進入應用程序后,首先進行驗證:<%''''如果未通過驗證,則重新返回登陸狀態IfNotSession(“Passed”)ThenResponse.Redirect“Login.asp”EndIf%>
2.4SQL注入漏洞防范策略防范SQL注入漏洞,要求程序員形成良好的編程習慣,可以采用如下方法來防范這類攻擊:
1)在客戶身份認證時將用戶名的檢驗和密碼的檢驗分開。也就是先使用SQL語句檢驗登錄的用戶名是否存在,對于已存在的用戶名確認只有一條記錄再進行密碼驗證,否則就直接轉入出錯頁面。
2)對用戶提交的用戶名和密碼中可能存在安全隱患的特殊字符進行過濾。常見的可能存在安全隱患的特殊字符主要有:單引號、select、update、insert、delete、@、exec、alter、drop、create、backup、and、or、add、set、open、close等,但要注意ASP對大小寫是不敏感的。3結束語電子商務的安全涉及到交易過程中各種數據的可靠性、完整性和可用性。就整個電子商務系統而言,安全性可以分為網絡節點的安全性、數據通信的安全性、應用程序的安全性、用戶的認證管理和安全管理五個層次。隨著網絡與電子商務的迅速發展,創建穩定可靠的Web站點顯的越來越重要。建設電子商務網站應該充分考慮電子商務中的安全性。隨著黑客入侵手段的不斷提高,只有不斷提高安全意識,不斷改進程序,才能確保電子商務網站的安全水平不斷提高,減少被入侵的機會,建立真正穩定運行的電子商務網站??傊?,保障電子商務網站的安全是一項不可松懈、長期而艱巨的工作和任務。
- 上一篇:實行農村最低生活保障規定
- 下一篇:社會組織管理方案