ASP+Access電子商務(wù)網(wǎng)站安全保障思索

時(shí)間:2022-03-31 04:57:00

導(dǎo)語(yǔ):ASP+Access電子商務(wù)網(wǎng)站安全保障思索一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

ASP+Access電子商務(wù)網(wǎng)站安全保障思索

隨著電子商務(wù)的蓬勃發(fā)展,電子商務(wù)購(gòu)物網(wǎng)站的設(shè)計(jì)具有非常重要的意義。ASP(ActiveServerPages)由于編寫簡(jiǎn)單、維護(hù)方便、功能豐富等特點(diǎn)獲得了廣泛的應(yīng)用,是電子商務(wù)網(wǎng)站建設(shè)中的常見工具。與此同時(shí),由于Access數(shù)據(jù)庫(kù)具有操作簡(jiǎn)單、功能齊全、用戶界面友好、使用維護(hù)方便等優(yōu)點(diǎn)而擁有較大的用戶群體。目前,asp+access是中小型電子商務(wù)網(wǎng)站的首選方案。但是,該解決方案在帶給我們便捷的同時(shí),也帶來(lái)了嚴(yán)峻的安全問(wèn)題。本文主要從ASP和Access兩方面討論了電子商務(wù)建設(shè)中存在的幾種常見的安全性問(wèn)題及其解決方法。

1電子商務(wù)網(wǎng)站的安全分析

電子商務(wù)網(wǎng)站受到攻擊后產(chǎn)生的危害主要體現(xiàn)在修改網(wǎng)頁(yè)內(nèi)容、竊取商業(yè)數(shù)據(jù)和個(gè)人賬戶資料、惡意破壞網(wǎng)站以及竊取程序文件等?;贏SP技術(shù)和Access數(shù)據(jù)庫(kù)建設(shè)的電子商務(wù)網(wǎng)站,主要的安全隱患一方面來(lái)自Access數(shù)據(jù)庫(kù)的安全性,另一方面來(lái)自ASP源文件和ASP網(wǎng)頁(yè)設(shè)計(jì)過(guò)程中的安全意識(shí)。

1.1Access數(shù)據(jù)庫(kù)的存儲(chǔ)隱患

采用Access數(shù)據(jù)庫(kù)建設(shè)的電子商務(wù)網(wǎng)站中,如果有人獲得或猜到了數(shù)據(jù)庫(kù)的存儲(chǔ)路徑和數(shù)據(jù)名,那么該數(shù)據(jù)庫(kù)就可以被下載到本地。例如,某電子商務(wù)網(wǎng)站的URL(UniformResourceLocator)是,而網(wǎng)站使用的數(shù)據(jù)庫(kù)ec.mdb就放在根目錄/下。那么只要在在瀏覽器地址欄中輸入地址:http:///ec.mdb,數(shù)據(jù)庫(kù)ec.mdb就可以輕松的被下載了。

1.2Access數(shù)據(jù)庫(kù)的解密隱患

由于Access數(shù)據(jù)庫(kù)的加密機(jī)制比較簡(jiǎn)單,即使設(shè)置了密碼,也很容易解密。該數(shù)據(jù)庫(kù)系統(tǒng)通過(guò)將用戶輸入的密碼與某一固定的密鑰進(jìn)行異或來(lái)形成一個(gè)加密串,并將其存儲(chǔ)在*.mdb文件從地址“&H24”開始的區(qū)域中。根據(jù)異或操作的特點(diǎn),可以很輕易的編制出解密程序。所以,無(wú)論數(shù)據(jù)庫(kù)是否設(shè)置密碼,只要數(shù)據(jù)庫(kù)被下載,其信息就沒有任何安全性可言了。

1.3ASP源文件的安全隱患

由于ASP程序是非編譯性語(yǔ)言,采用ASP技術(shù)編寫的腳本程序使用明文(plaintext)編寫,一旦ASP應(yīng)用程序到網(wǎng)絡(luò)環(huán)境中,源代碼就很容易泄漏,大大降低了源程序代碼的安全性。因此任何人闖入站點(diǎn),那么就可以獲得全部的ASP應(yīng)用程序源代碼。

1.4ASP程序設(shè)計(jì)中的安全隱患

ASP代碼利用表單實(shí)現(xiàn)和用戶的交換的功能,在不同的ASP頁(yè)面之間傳遞變量時(shí),其內(nèi)容會(huì)反映在瀏覽器的地址欄中。如果不采取適當(dāng)?shù)陌踩胧?,那么只要記住這些內(nèi)容就可以繞過(guò)用戶身份驗(yàn)證而直接進(jìn)入某些頁(yè)面。例如,只要在瀏覽器的地址攔輸入,就可以繞過(guò)驗(yàn)證而直接進(jìn)入滿足條件“id=10”的頁(yè)面。所以在設(shè)計(jì)注冊(cè)和驗(yàn)證的頁(yè)面時(shí)必須采取相應(yīng)的措施來(lái)預(yù)防此類問(wèn)題的發(fā)生。

1.5SQL注入漏洞

很多電子商務(wù)網(wǎng)站都采用客戶身份認(rèn)證方式來(lái)達(dá)到內(nèi)部網(wǎng)頁(yè)加密的目的,即用戶在登錄窗口輸入正確的用戶名和密碼就可以訪問(wèn)網(wǎng)頁(yè),否則報(bào)錯(cuò)。然而,“adminor1=1”成為攻破該類認(rèn)證系統(tǒng)的萬(wàn)能密碼,類似的密碼還可以有無(wú)數(shù)個(gè)。一般的電子商務(wù)網(wǎng)站在設(shè)計(jì)登錄驗(yàn)證時(shí)使用下面的SQL語(yǔ)句來(lái)驗(yàn)證用戶的合法性:Sql="select*fromuserwhereusername="&request.form("username")&"''''andpasswd=''''"&request.form("passwd")&"''''"此時(shí),用戶只要根據(jù)sql構(gòu)造一個(gè)特殊的用戶名和密碼,如:admin''''or''''1''''=''''1。就可以成功登錄。將程序和用戶數(shù)據(jù)合起來(lái)將變成:Sql=”select*fromuserwhereusername=adminandpasswd=''''''''or''''1''''=''''1''''”由于1=1是衡成立的,所以這個(gè)查詢的結(jié)果也衡為真,因此就會(huì)登錄成功。

2提高電子商務(wù)網(wǎng)站安全性的方法

2.1防止數(shù)據(jù)庫(kù)被下載

1)非常規(guī)命名。為數(shù)據(jù)庫(kù)文件起一個(gè)非常復(fù)雜的非常規(guī)名字且存放在多層目錄下,可有效防止數(shù)據(jù)庫(kù)被下載。例如,電子商務(wù)網(wǎng)站的數(shù)據(jù)庫(kù)文件,不把它命名“ec.mdb”,而給它一個(gè)非常規(guī)的命名“adf3kxgce.mdb”,再把它放在如…/fsawdk5kl/rtr6we/jhlj9/i-uergh3p之類的深沉目錄下。這樣就加大了黑客通過(guò)猜測(cè)的方式來(lái)獲得數(shù)據(jù)庫(kù)的難度。

2)使用ODBC數(shù)據(jù)源。使用ODBC數(shù)據(jù)源也可以防止數(shù)據(jù)庫(kù)被下載。在ASP程序設(shè)計(jì)中,應(yīng)該盡量使用ODBC數(shù)據(jù)源,而不要把數(shù)據(jù)庫(kù)名寫在程序中。這樣即使ASP代碼泄露,數(shù)據(jù)庫(kù)名也不會(huì)被知道。例如,在建立了一個(gè)數(shù)據(jù)源user后,打開數(shù)據(jù)庫(kù)的ASP源碼如下:setconn=server.createobject(“adodb.Connection”)conn.ConnectionString=″dsn=user;uid=;pwd=″conn.open這樣,在ASP程序中就不會(huì)出現(xiàn)源數(shù)據(jù)庫(kù)的任何相關(guān)目錄和名稱,大大提高了數(shù)據(jù)庫(kù)的安全性。

3)利用.MDE文件保護(hù)數(shù)據(jù)庫(kù)。MDE是一種經(jīng)過(guò)編譯的特殊形式的數(shù)據(jù)庫(kù),把數(shù)據(jù)庫(kù)文件轉(zhuǎn)換為MDE文件后,可以完全保護(hù)Access中的代碼免受非法訪問(wèn)。將.mdb文件轉(zhuǎn)換為MDE文件時(shí),Access將編譯所有模塊并刪除所有可編輯的源代碼,然后壓縮目標(biāo)數(shù)據(jù)庫(kù),而原始的.mdb文件不會(huì)受到任何影響。

4)改數(shù)據(jù)庫(kù)擴(kuò)展名。由于.inc文件在IIS上默認(rèn)是不允許瀏覽的,因此根據(jù)IIS的這一特點(diǎn)可以把數(shù)據(jù)庫(kù)的后綴名改為.inc。這種通過(guò)在IIS上把數(shù)據(jù)庫(kù)所在的目錄設(shè)置為不可讀的方法也可以防止數(shù)據(jù)庫(kù)被下載。

5)數(shù)據(jù)庫(kù)加密。對(duì)數(shù)據(jù)庫(kù)中的信息進(jìn)行加密,可以保證即使在黑客下載到數(shù)據(jù)庫(kù)文件并打開數(shù)據(jù)庫(kù)后,也不能有效獲取數(shù)據(jù)。目前的加密算法有很多,常用的專用密鑰加密(如:3DES、IDEA、RC4和RC5)和公鑰加密(如:RSA、SEEK、PGP和EU)能很好的保證數(shù)據(jù)的保密性、完整性和真實(shí)性。

2.2對(duì)ASP頁(yè)面進(jìn)行加密

為有效的防止ASP源代碼泄露,必須對(duì)ASP頁(yè)面進(jìn)行加密。ASP頁(yè)面加密一般有兩種方法:一種是使用組件技術(shù)將程序代碼封裝入DLL中;另一種是使用微軟的ScriptEncoder對(duì)ASP頁(yè)面進(jìn)行加密。由于使用組件技術(shù)需對(duì)每段代碼組件化,且由于操作煩瑣,工作量較大等原因而很少使用。一般使用ScriptEncoder對(duì)ASP頁(yè)面進(jìn)行加密,它不但操作簡(jiǎn)單,而且加密效果也很好,只需掌握一些基本的命令即可,而且可以處理批量的ASP頁(yè)面。

2.3利用Session對(duì)象設(shè)計(jì)注冊(cè)和驗(yàn)證頁(yè)面

為防止未注冊(cè)的用戶繞過(guò)注冊(cè)頁(yè)面的驗(yàn)證而直接進(jìn)入應(yīng)用系統(tǒng),可以采用Session對(duì)象來(lái)進(jìn)行注冊(cè)驗(yàn)證。例如,本系統(tǒng)利用下面的代碼來(lái)實(shí)現(xiàn)注冊(cè)頁(yè)面的驗(yàn)證:<%''''讀取用戶的賬號(hào)和密碼User_ID=Request(“UserlD”)Password=Request(“Password”)''''檢查UserID及Password是否正確IfUserID<>“Name”orPassword<>“password”ThenResponse.Write“你輸入的賬號(hào)不正確!”Response.EndEndIf''''將Session對(duì)象設(shè)置為通過(guò)驗(yàn)證狀態(tài)Session(“Passed”)=True%>進(jìn)入應(yīng)用程序后,首先進(jìn)行驗(yàn)證:<%''''如果未通過(guò)驗(yàn)證,則重新返回登陸狀態(tài)IfNotSession(“Passed”)ThenResponse.Redirect“Login.asp”EndIf%>

2.4SQL注入漏洞防范策略防范SQL注入漏洞,要求程序員形成良好的編程習(xí)慣,可以采用如下方法來(lái)防范這類攻擊:

1)在客戶身份認(rèn)證時(shí)將用戶名的檢驗(yàn)和密碼的檢驗(yàn)分開。也就是先使用SQL語(yǔ)句檢驗(yàn)登錄的用戶名是否存在,對(duì)于已存在的用戶名確認(rèn)只有一條記錄再進(jìn)行密碼驗(yàn)證,否則就直接轉(zhuǎn)入出錯(cuò)頁(yè)面。

2)對(duì)用戶提交的用戶名和密碼中可能存在安全隱患的特殊字符進(jìn)行過(guò)濾。常見的可能存在安全隱患的特殊字符主要有:?jiǎn)我?hào)、select、update、insert、delete、@、exec、alter、drop、create、backup、and、or、add、set、open、close等,但要注意ASP對(duì)大小寫是不敏感的。3結(jié)束語(yǔ)電子商務(wù)的安全涉及到交易過(guò)程中各種數(shù)據(jù)的可靠性、完整性和可用性。就整個(gè)電子商務(wù)系統(tǒng)而言,安全性可以分為網(wǎng)絡(luò)節(jié)點(diǎn)的安全性、數(shù)據(jù)通信的安全性、應(yīng)用程序的安全性、用戶的認(rèn)證管理和安全管理五個(gè)層次。隨著網(wǎng)絡(luò)與電子商務(wù)的迅速發(fā)展,創(chuàng)建穩(wěn)定可靠的Web站點(diǎn)顯的越來(lái)越重要。建設(shè)電子商務(wù)網(wǎng)站應(yīng)該充分考慮電子商務(wù)中的安全性。隨著黑客入侵手段的不斷提高,只有不斷提高安全意識(shí),不斷改進(jìn)程序,才能確保電子商務(wù)網(wǎng)站的安全水平不斷提高,減少被入侵的機(jī)會(huì),建立真正穩(wěn)定運(yùn)行的電子商務(wù)網(wǎng)站??傊?,保障電子商務(wù)網(wǎng)站的安全是一項(xiàng)不可松懈、長(zhǎng)期而艱巨的工作和任務(wù)。