資源描述:
《基于ajax的web 2.0應(yīng)用程序安全性分析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于AJAX的Web2.0應(yīng)用程序安全性分析摘要:AJAX是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用程序技術(shù),一些大型視頻類(lèi)、社交類(lèi)網(wǎng)站均應(yīng)用AJAX技術(shù)去開(kāi)發(fā)網(wǎng)站。自從社交網(wǎng)站受到蠕蟲(chóng)病毒攻擊開(kāi)始,人們?cè)桨l(fā)關(guān)注基于AJAX開(kāi)發(fā)的應(yīng)用程序存在哪些安全性問(wèn)題。本文主要介紹了AJAX技術(shù)的原理、分析了兩類(lèi)常見(jiàn)的安全性問(wèn)題,對(duì)于這兩類(lèi)問(wèn)題分別闡述了相應(yīng)的防御方法。關(guān)鍵詞:AJAX;安全性問(wèn)題;防御中圖分類(lèi)號(hào):TP393.08Web2.0這個(gè)術(shù)語(yǔ)是不斷變化的代名詞。越來(lái)越多的人使用網(wǎng)絡(luò)從而促使網(wǎng)絡(luò)技術(shù)飛速發(fā)展。如果說(shuō)網(wǎng)絡(luò)可以被視為一個(gè)平臺(tái)
2、的話,那么不斷被開(kāi)發(fā)的網(wǎng)頁(yè)技術(shù)則可被看做是用來(lái)搜索網(wǎng)頁(yè)的工具。這種變化對(duì)人文科學(xué)和社會(huì)行為都有著顯著地影響。隨著時(shí)間的流逝,為了滿足社會(huì)和商業(yè)的需要,基于Web2.0的應(yīng)用程序取代了Web1.0程序被廣泛的應(yīng)用起來(lái)。Web2.0應(yīng)用程序在網(wǎng)站的架構(gòu)、信息來(lái)源和展現(xiàn)信息的方式都與以往不同。隨著Web62.0這個(gè)概念不斷推動(dòng)網(wǎng)絡(luò)發(fā)展的同時(shí),AJAX這個(gè)新技術(shù)孕育而生。AJAX框架技術(shù)最早被谷歌和微軟應(yīng)用,由于基于AJAX技術(shù)的應(yīng)用程序不僅提升了用戶體驗(yàn),而且在很大程度上減少了網(wǎng)絡(luò)流量,并減輕了服務(wù)器負(fù)載,很多商業(yè)網(wǎng)站、郵件服務(wù)類(lèi)、博客首頁(yè)都
3、開(kāi)始用AJAX技術(shù)去搭建網(wǎng)站。然而,隨著基于AJAX技術(shù)應(yīng)用程序的興起,其安全性問(wèn)題也得到了廣泛的關(guān)注。1AJAX的含義AJAX即AsynchronousJavaScript+XML,并不是一種新的技術(shù)而是基于現(xiàn)有的技術(shù)和環(huán)境進(jìn)行重新組合。當(dāng)JesseJamesGarrett最早定義AJAX時(shí)就已經(jīng)指出,AJAX包含了XHTML,XML,DOM,JAVASCRIPTandXMLHttpRequest,它利用現(xiàn)有的技術(shù)使得網(wǎng)頁(yè)內(nèi)容可以動(dòng)態(tài)更新。在體驗(yàn)基于AJAX應(yīng)用程序時(shí),數(shù)據(jù)從網(wǎng)頁(yè)服務(wù)器傳輸?shù)綖g覽器然后在瀏覽器進(jìn)行處理,然后通過(guò)HTML
4、,XSLT或者JavaScript展現(xiàn)出來(lái)。與傳統(tǒng)的HTTP網(wǎng)頁(yè)相比,這種基于AJAX技術(shù)的數(shù)據(jù)傳輸和處理方式極大的提高了網(wǎng)頁(yè)的動(dòng)態(tài)交互、豐富了用戶的體驗(yàn),用戶不再需要為了更新頁(yè)面數(shù)據(jù)而去更新整個(gè)網(wǎng)頁(yè)。2安全性問(wèn)題當(dāng)AJAX技術(shù)框架在操作和性能上給應(yīng)用程序帶來(lái)巨大優(yōu)勢(shì)的同時(shí),也帶來(lái)了一些安全方面的問(wèn)題,而這些安全問(wèn)題常常容易被我們所忽視。同時(shí),一些安全性問(wèn)題對(duì)于傳統(tǒng)的應(yīng)用程序而言并不嚴(yán)重,但是對(duì)于基于AJAX技術(shù)的應(yīng)用程序而言卻會(huì)因?yàn)锳JAX自身的特點(diǎn)帶來(lái)嚴(yán)重的后果。6對(duì)于網(wǎng)頁(yè)應(yīng)用程序而言,安全問(wèn)題主要來(lái)自于惡意代碼的威脅。因此,以下主
5、要介紹腳本攻擊和跨域發(fā)送請(qǐng)求這兩方面的安全問(wèn)題。除此之外,潛在的SQL注入問(wèn)題在AJAX應(yīng)用程序中也是一種常見(jiàn)的安全性問(wèn)題,但是這類(lèi)問(wèn)題已經(jīng)被有效的解決了,本文將不做闡述。2.1腳本安全問(wèn)題。XSS又叫CrossSiteScript,跨站腳本攻擊。在AJAX應(yīng)用程序中,是最常見(jiàn)的一種腳本攻擊。跨站腳本攻擊并不是一種新的攻擊方式,但是在過(guò)去的幾年當(dāng)中經(jīng)常被人們所忽視。在一個(gè)傳統(tǒng)的網(wǎng)頁(yè)應(yīng)用程序中,跨站腳本攻擊主要通過(guò)偷取cookie和會(huì)話劫持兩種方式實(shí)現(xiàn),當(dāng)用戶刷新網(wǎng)頁(yè)時(shí)跨站腳本攻擊就會(huì)被觸發(fā)。對(duì)于傳統(tǒng)應(yīng)用程序而言這并不是什么很?chē)?yán)重的問(wèn)題。
6、但是在AJAX應(yīng)用程序中,由于網(wǎng)頁(yè)是通過(guò)JavaScript控制的,這種基于AJAX的應(yīng)用程序無(wú)需通過(guò)用戶可以直接向網(wǎng)頁(yè)服務(wù)器發(fā)送HTTP請(qǐng)求。因此跨站腳本攻擊對(duì)于AJAX程序而言威脅要更大。XSS通常是指黑客將惡意的HTML代碼插入到網(wǎng)頁(yè)中,當(dāng)用戶瀏覽網(wǎng)頁(yè)時(shí)被嵌入的惡意代碼會(huì)被激活??缯灸_本攻擊流程如下圖所示:6由于網(wǎng)頁(yè)服務(wù)器對(duì)于用戶輸入的字段沒(méi)有進(jìn)行嚴(yán)格的檢查和過(guò)濾,因此AJAX應(yīng)用程序很容易遭受跨站腳本的攻擊。對(duì)于基于Ajax應(yīng)用程序的客戶端腳本,JavaScript腳本本身可以創(chuàng)建HTTP請(qǐng)求并且請(qǐng)求的格式和用戶在瀏覽器操作的是
7、相同的。因此,網(wǎng)絡(luò)服務(wù)器無(wú)法區(qū)分請(qǐng)求是來(lái)自于用戶的操作還是來(lái)自于惡意的JavaScript創(chuàng)建的XMLHTTPRequest對(duì)象。2.2跨域發(fā)送請(qǐng)求安全問(wèn)題。通常有四種方式來(lái)實(shí)現(xiàn)跨域操作:(1)通過(guò)Flash來(lái)實(shí)現(xiàn)跨域;(2)使用Javascript動(dòng)態(tài)生成的標(biāo)記實(shí)現(xiàn)跨域;(3)使用Javascript動(dòng)態(tài)生成的隱藏表單實(shí)現(xiàn)跨域;(4)通過(guò)不受限制的AjaxBridge技術(shù)實(shí)現(xiàn)跨域。對(duì)于一個(gè)普通的網(wǎng)頁(yè)來(lái)說(shuō),其最常見(jiàn)的操作是用POST方法在網(wǎng)頁(yè)中創(chuàng)建一個(gè)網(wǎng)頁(yè)表單標(biāo)簽對(duì)象,然后用SUBMIT方法發(fā)送請(qǐng)求。然而在AJAX應(yīng)用程序中,AJAX蠕
8、蟲(chóng)可以偽裝成一個(gè)普通的網(wǎng)頁(yè),利用Javascript的createElement功能動(dòng)態(tài)生成一個(gè)隱藏的表單標(biāo)記,然后通過(guò)調(diào)用document.form.submit方法去觸發(fā)隱藏表單請(qǐng)求。黑客通常利用cre