電子商務(wù)網(wǎng)站安全論文
電子商務(wù)網(wǎng)站安全主要涉及網(wǎng)絡(luò)信息的安全和網(wǎng)絡(luò)系統(tǒng)本身的安全。以下是小編為大家整理好的電子商務(wù)網(wǎng)站安全論文,歡迎大家閱讀參考!
[摘 要] 網(wǎng)頁制作是目前比較流行的一種行業(yè),它已經(jīng)滲透到社會的各個角落,而電子商務(wù)網(wǎng)站中網(wǎng)頁制作技術(shù)應(yīng)用的最多,本文主要從電子商務(wù)網(wǎng)站的安全隱患、網(wǎng)站安全現(xiàn)狀、網(wǎng)站安全的措施與解決方案、電子商務(wù)發(fā)展等方面進行探討,尤其對于網(wǎng)站安全的考慮,在編寫網(wǎng)頁代碼時,應(yīng)注意的一些防范方法的介紹,以促進人們對網(wǎng)頁制作中的安全防范技術(shù)的了解。
[關(guān)鍵詞] 網(wǎng)站 安全 腳本 數(shù)據(jù)庫 交互
一、引言
Internet已滲透到了社會的各個領(lǐng)域,不僅影響著我們的學習和工作,在Internet的發(fā)展中,WWW的發(fā)明和迅速推廣應(yīng)用是一個重要的里程碑。網(wǎng)頁設(shè)計作為一門新興的技術(shù),是介于平面設(shè)計、編程技術(shù)兩者之間的一門學科,它還涉及到美學心理、平面構(gòu)成、色彩搭配等平面設(shè)計方面的知識。只有綜合運用多種知識,才能設(shè)計出視聽特效、動靜結(jié)合、人機交互的WEB頁面。
電子商務(wù)網(wǎng)站是一個非常豐富和方便的系統(tǒng),很多是過去無法想像的,隨著今天的社會的發(fā)展以及科學技術(shù)的發(fā)展,現(xiàn)在都可以想像得到。由此可以想像到未來的網(wǎng)頁設(shè)計,那時候網(wǎng)頁設(shè)計的要求是什么呢?怎樣才能適應(yīng)電子商務(wù)的發(fā)展呢?我有以下幾點想法:網(wǎng)頁能具有人性化;網(wǎng)頁要具有相當?shù)拿栏?網(wǎng)頁更加強調(diào)交互性。
二、電子商務(wù)網(wǎng)站的安全現(xiàn)狀
電子商務(wù)網(wǎng)站安全主要涉及網(wǎng)絡(luò)信息的安全和網(wǎng)絡(luò)系統(tǒng)本身的安全。電子商務(wù)網(wǎng)站安全的隱患主要來自操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫的脆弱性以及安全管理上的疏忽。電子商務(wù)網(wǎng)站安全從本質(zhì)上講就是網(wǎng)絡(luò)上信息的安全,包括靜態(tài)信息的存儲安全和信息的傳輸安全。從廣義上講,凡是涉及到網(wǎng)絡(luò)上信息的保密性、完整性、可用性、真實性和可控性的相關(guān)技術(shù)和理論都是網(wǎng)絡(luò)安全的研究領(lǐng)域。因此為了保證網(wǎng)絡(luò)的安全,必須保證以下四個方面的安全: 運行系統(tǒng)的.安全;
網(wǎng)絡(luò)上系統(tǒng)信息的安全; 網(wǎng)絡(luò)上信息傳播安全; 網(wǎng)絡(luò)上信息內(nèi)容的安全。
以下是對目前國內(nèi)電子商務(wù)站點普遍存在的幾個嚴重的安全問題的一些分析。
1.客戶端數(shù)據(jù)的完整性和有效性檢查
(1)特殊字符的過濾
在 W3C 的 WWW Security FAQ 中關(guān)于CGI安全編程一節(jié)里列出了建議過濾的字符:&;“”“|*?-<>^()[]{} ,這些字符由于在不同的系統(tǒng)或運行環(huán)境中會具有特殊意義,如變量定義/賦值/取值、非顯示字符、運行外部程序等,而被列為危險字符。
①CGI和Script編程語言的問題
在幾種國內(nèi)常見的WEB編程語言中,ASP和Cold Fusion 腳本語言對特殊字符的過濾機制不夠完善,例如沒有對單引號做任何處理等。Perl和php對特殊字符的過濾則較為嚴密,如忽略或加上“”(取消特殊字符含義)處理。C語言編寫的cgi程序?qū)μ厥庾址倪^濾完全依賴于程序員的知識和技術(shù),因此也可能存在安全問題。
、贛icrosoft ASP腳本
普遍存在的問題是程序員在編寫ASP腳本時,缺少或沒有對客戶端輸入的數(shù)據(jù)/變量進行嚴格的合法性分析。因此,如果攻擊者輸入某些特定sql語句,可能造成數(shù)據(jù)庫資料丟失/泄漏/甚至威脅整個站點的安全。比如攻擊者可以任意創(chuàng)建或者刪除表(如果可以猜測出已存在的表名),清除或者更改數(shù)據(jù)庫數(shù)據(jù)。攻擊者也可能通過執(zhí)行一些儲存過程函數(shù),將sql語句的輸出結(jié)果通過電子郵件發(fā)送給自己,或者執(zhí)行系統(tǒng)命令。
、跴HP和Perl
雖然提供了加上””(取消特殊字符含義)處理的手段,但是處理一些數(shù)據(jù)庫時依然可以被改寫。對于MySQL則沒有問題,’不會與前面的單引號封閉,而當作一個合法的字符處理。針對oracle和informix等數(shù)據(jù)庫暫時未進行相關(guān)測試。
另外,對于PHP或者Perl語言,很多程序?qū)τ跀?shù)字類型的輸入變量,沒有加單引號予以保護,攻擊者就有可能在這種變量中加入額外的SQL語句,來攻擊數(shù)據(jù)庫或者獲得非法控制權(quán)限。
(2)數(shù)據(jù)庫問題
不同的數(shù)據(jù)庫對安全機制的不同認識和實現(xiàn)方法,使它們的安全性也有所不同。最常見的問題是利用數(shù)據(jù)庫對某些字符的不正確解釋,改寫被執(zhí)行的SQL語句,從而非法獲得訪問權(quán)限。
2.大量數(shù)據(jù)查詢導(dǎo)致拒絕服務(wù)
許多網(wǎng)站對用戶輸入內(nèi)容的判斷在前臺,用JavaScript判斷,如果用戶繞過前臺判斷,就能對數(shù)據(jù)庫進行全查詢,如果數(shù)據(jù)庫比較龐大,會耗費大量系統(tǒng)資源,如果同時進行大量的這種查詢操作,就會有Denial of Service(DoS ―― 拒絕服務(wù))同樣的效果。
三、措施與解決方案
通過查閱一些資料,下面介紹一些網(wǎng)頁制作中安全防范的方法,以供大家參考。
1.防范腳本攻擊
(1)JS腳本和HTML腳本攻擊的防范其實很簡單,只要用server.HTMLEncode(Str)就可以了。當然全以<%=uid%>過濾,為了方便的過濾,只需要將HTML腳本和JS腳本中的幾個關(guān)鍵字符過濾掉就可以了,如下代碼所示:
以下是過濾函數(shù)CHK()
<%
function CHK(fqyString)
fqyString = replace(fqyString, “>”, “>”)
fqyString = replace(fqyString, “<”, ”<“)
fqyString = replace(fqyString, “&#”, “&”)
fqyString = Replace(fqyString, CHR(32), “ ”)
fqyString = Replace(fqyString, CHR(9), “ ”)
fqyString = Replace(fqyString, CHR(34), “”“)
fqyString = Replace(fqyString, CHR(39), ”‘“)
fqyString = Replace(fqyString, CHR(13), ”“)
fqyString = Replace(fqyString, CHR(10) & CHR(10), ”</P><P> “)
fqyString = Replace(fqyString, CHR(10), ”<BR> “)
CHK = fqyString
end function
%>
(2)很多站點在用戶注冊,或者是用戶資料修改的頁面上也缺少腳本的過濾,或者是只在其中之一進行過濾,注冊進入后修改資料仍然可以進行腳本攻擊。對用戶提交的數(shù)據(jù)進行檢測和過濾如以下代碼:
If Instr(request(”username“),”=“)>0 or
Instr(request(”username“),”%“)>0 or
Instr(request(”username“),chr(32))>0 or
Instr(request(”username“),”?“)>0 or
……
Instr(request(”username“),”>“)>0 or
Instr(request(”username“),”<“)>0 or
Instr(request(”username“),”“”“)>0 then
response.write ”朋友,你的提交用戶名含有非法字符,請更改,謝謝合作 <a href=’****:window.history.go(-1);‘>返回</a>“
response.end
end if
2.防范sql injeciton攻擊
從最一般的.SQL Injection 漏洞攻擊來看,主要在用戶名和密碼上的過濾問題,提交:用戶名為:‘or’‘=’ 用戶密碼為:‘or’‘=’從程序出發(fā),數(shù)據(jù)庫在執(zhí)行以下操作Sql=“ SELECT * FROM lUsers WHERE Username=”or“=” and Password = “or”=“”時,SQL 服務(wù)器將返回lUsers表格中的所有記錄,而ASP腳本將會因此而誤認為攻擊者的輸入符 lUsers表格中的第一條記錄,從而允許攻擊者以該用戶的名義登入網(wǎng)站。對此類注入的防范可以利用以下代碼就可以實現(xiàn)strUsername = Replace(Request.Form(“Username”), “‘’”, “‘’‘”)
strPassword = Replace(Request.Form(“Password”), “’‘”, “’‘’‘”)
3.防止ASP木馬
防止ASP木馬被上傳到服務(wù)器的方法很簡單,如果你的論壇支持文件上傳,請設(shè)定好你要上傳的文件格式,我不贊成使用可更改的文件格式,直接從程序上鎖定,只有圖象文件格式和壓縮文件就完全可以,因為多給自己留點方便也就多給攻擊者留點方便。怎么判斷格式,如下面代碼所示:
判斷文件類型是否合格
Private Function CheckFileExt (fileEXT)
dim Forumupload
Forumupload=”gif,jpg,bmp,jpeg“
Forumupload=split(Forumupload,”,“)
for i=0 to ubound(Forumupload)
if lcase(fileEXT)=lcase(trim(Forumupload(i))) then
CheckFileExt=true
exit Function
else
CheckFileExt=false
end if
next
End Function
上述介紹的一些安全防范的方法在編寫網(wǎng)頁代碼時被常用到,這些代碼還是較為基本的一些代碼,但能有效的防止一些黑客的攻擊,當然加入了這些代碼可能會降低程序的使用效率。做為一名網(wǎng)站的管理人員或網(wǎng)頁制作人員在進行網(wǎng)頁制作和網(wǎng)站維護時應(yīng)加強安全防范的意識,確保在網(wǎng)絡(luò)上進行數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
總之,隨著網(wǎng)頁制作的技術(shù)不斷的發(fā)展和提高,對電子商務(wù)的發(fā)展有著不可估量的推進作用,對于網(wǎng)站的安全防范已經(jīng)成為目前發(fā)展電子商務(wù)最需考慮的一個問題之一,在開發(fā)網(wǎng)站中應(yīng)注意在網(wǎng)絡(luò)安全方面的考慮。目前如JSP、ASP、PHP、XML等一些網(wǎng)站新技術(shù)融入網(wǎng)頁制作中,進一步提高了網(wǎng)頁的性能。隨著新的技術(shù)的推出,我相信網(wǎng)頁制作的發(fā)展會把我們帶入一嶄新的信息世界。
參考文獻:
林 海 楊晨光等編寫:計算機網(wǎng)絡(luò)安全.上海:高等教育出版社