亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Web客戶端數(shù)據(jù)存儲(chǔ)的安全風(fēng)險(xiǎn)分析

        2012-12-31 00:00:00楊建強(qiáng),方磊
        計(jì)算機(jī)時(shí)代 2012年12期

        摘 要: Web客戶端數(shù)據(jù)是指Web應(yīng)用在Web客戶端保存的數(shù)據(jù)。其存儲(chǔ)機(jī)制已經(jīng)從最初僅存儲(chǔ)ID值的Cookies發(fā)展到能夠保存重要個(gè)人信息的客戶端數(shù)據(jù)庫(kù)。Web客戶端數(shù)據(jù)存儲(chǔ)的發(fā)展,給Web應(yīng)用和終端用戶都帶來(lái)了新的安全風(fēng)險(xiǎn)。文章介紹了客戶端數(shù)據(jù)存儲(chǔ)的不同技術(shù),分析了客戶端數(shù)據(jù)存儲(chǔ)的安全風(fēng)險(xiǎn),給出了防范這些安全風(fēng)險(xiǎn)的措施和建議。

        關(guān)鍵詞: Web應(yīng)用; Web客戶端數(shù)據(jù)存儲(chǔ); 安全風(fēng)險(xiǎn); 應(yīng)對(duì)策略

        中圖分類號(hào):TP309.5 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2012)12-06-02

        Risk analysis of Web client-end data storage

        Yang Jianqiang, Fang Lei

        (School of Mathematics and Computer Science, Hubei University of Arts and Science, Xiangyang, Hubei 441053, China)

        Abstract: Web client-end data is a kind of data that is stored in client’s terminals by Web application. The storage mechanisms have changed from Cookies that simply store the ID value, to the client-end database that can store important personal information. With the development of client-end data storage, new risks for both Web applications and end users have appeared. In this paper, different technologies available for client-side data storage are described, the risks associated with client-side data storage are analyzed, and the effective countermeasures and suggestions to prevent these risks are given.

        Key words: Web application; Web client-side data storage; security risk; countermeasure

        0 引言

        Web客戶端數(shù)據(jù)是指由Web應(yīng)用發(fā)起的、并由瀏覽器或?yàn)g覽器插件執(zhí)行和控制的、在Web用戶的系統(tǒng)上保存的數(shù)據(jù),這些數(shù)據(jù)大多與Web用戶有關(guān)。自從采用簡(jiǎn)單的Cookies作為HTTP的狀態(tài)管理機(jī)制以來(lái),Web站點(diǎn)就開(kāi)始在用戶的系統(tǒng)上保存數(shù)據(jù)。為了滿足Web應(yīng)用的需求,后來(lái)出現(xiàn)了新的Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)。這些新技術(shù)常常使用其他存儲(chǔ)機(jī)制,比如數(shù)據(jù)庫(kù),并且一般提供比Cookies更多的存儲(chǔ)容量。Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)的發(fā)展和廣泛采用,給Web應(yīng)用帶來(lái)了新的安全風(fēng)險(xiǎn)。比如客戶端數(shù)據(jù)損壞、客戶端數(shù)據(jù)泄露、客戶端XSS和SQL注入等。這些風(fēng)險(xiǎn)會(huì)影響到Web應(yīng)用的安全與可靠運(yùn)行。

        1 Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)

        目前存在多種Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù),除了Cookies,還有微軟的IE UserData和Silverlight、Adobe的Flash、Oracle的Java,以及與HTML 5有關(guān)的Web SQL數(shù)據(jù)庫(kù)(Web SQL Database)、Web存儲(chǔ)(Web Storage)、索引數(shù)據(jù)庫(kù)API(Indexed Database API)等。在這些存儲(chǔ)技術(shù)中,Cookies被所有的瀏覽器支持。其他技術(shù)則僅在部分瀏覽器中得到支持,并且有的技術(shù)還需要安裝相應(yīng)的瀏覽器插件才可以使用,如Flash。

        為了防止不同的Web應(yīng)用讀取彼此的數(shù)據(jù),上述所有的存儲(chǔ)技術(shù)都采用了同一來(lái)源策略機(jī)制。來(lái)源通常由主機(jī)名(如www.sohu.com)、端口號(hào),以及傳輸協(xié)議等界定。瀏覽器會(huì)記錄所有Web客戶端數(shù)據(jù)的來(lái)源。當(dāng)某個(gè)Web應(yīng)用訪問(wèn)本地存儲(chǔ)的數(shù)據(jù)(即Web客戶端數(shù)據(jù))的時(shí)候,瀏覽器將檢查該Web應(yīng)用的來(lái)源和被訪問(wèn)數(shù)據(jù)的來(lái)源,只有當(dāng)二者匹配的時(shí)候才允許訪問(wèn)[1]。

        大多數(shù)Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)并不指定數(shù)據(jù)在客戶端的保存期限,因此數(shù)據(jù)將一直保存在用戶系統(tǒng)上,除非主動(dòng)刪除它們。不過(guò)Cookies是一個(gè)例外,它允許指定數(shù)據(jù)的到期時(shí)間。另外,不同的存儲(chǔ)技術(shù)采用不同的存儲(chǔ)機(jī)制,如純文本、XML、數(shù)據(jù)庫(kù)或其他專有的格式。

        Web客戶端數(shù)據(jù)的使用方式依賴于特定的Web應(yīng)用。大多數(shù)情況下,數(shù)據(jù)被用作Web應(yīng)用的輸入。有時(shí)候數(shù)據(jù)也在本地使用,由客戶端腳本加載它們,用以創(chuàng)建動(dòng)態(tài)網(wǎng)頁(yè)。

        表1給出了目前常見(jiàn)的Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)。

        2 Web客戶端數(shù)據(jù)存儲(chǔ)的安全風(fēng)險(xiǎn)

        2.1 客戶端XSS

        跨站腳本XSS(Cross-Site Scripting)是目前Web應(yīng)用中非常流行的漏洞。不同類型的XSS具有相同的特征:允許惡意JavaScript腳本在用戶瀏覽器中運(yùn)行。由于腳本是在被攻擊的Web站點(diǎn)的上下文中運(yùn)行的,因此攻擊者可以訪問(wèn)正常情況下不能訪問(wèn)的資源。

        XSS的傳統(tǒng)形式是反射XSS,其特點(diǎn)是惡意腳本被用戶發(fā)送到Web服務(wù)器(比如用戶無(wú)意中點(diǎn)擊了一個(gè)惡意鏈接),然后又被反射回給用戶。比反射XSS危害性更大的是存儲(chǔ)XSS。它把惡意腳本注入到Web站點(diǎn)所使用的庫(kù)中。如果這個(gè)庫(kù)用于顯示信息給用戶,那么,被注入的惡意腳本將被呈現(xiàn)給訪問(wèn)這個(gè)站點(diǎn)的每一個(gè)用戶。

        當(dāng)Web應(yīng)用使用Web客戶端數(shù)據(jù)存儲(chǔ)的時(shí)候,特別是采用數(shù)據(jù)庫(kù)作為存儲(chǔ)機(jī)制的時(shí)候,攻擊者就可能把惡意腳本注入到客戶端的本地存儲(chǔ)中。這是一種新的XSS,我們稱之為客戶端XSS,它完全位于本地并且使用客戶端的存儲(chǔ)能力。客戶端XSS一旦注入成功,每次當(dāng)Web頁(yè)面使用本地存儲(chǔ)的信息的時(shí)候,惡意腳本都會(huì)運(yùn)行。

        2.2 客戶端SQL注入

        SQL注入是一種攻擊數(shù)據(jù)庫(kù)的行為,攻擊者把惡意SQL命令插入到Web表單的輸入域或頁(yè)面請(qǐng)求的查詢字符串中,從而欺騙Web應(yīng)用執(zhí)行惡意的SQL命令,達(dá)到竊取數(shù)據(jù)或破壞的目的[6]。以往的SQL注入只針對(duì)運(yùn)行在Web服務(wù)器端的數(shù)據(jù)庫(kù),并且通過(guò)服務(wù)器端的SQL查詢來(lái)控制它。Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)對(duì)數(shù)據(jù)庫(kù)的支持,使客戶端SQL注入成為可能。然而,普通的客戶端SQL注入并無(wú)多大危害,因?yàn)楣粽卟⒉荒塬@得查詢結(jié)果,結(jié)果會(huì)反饋給用戶而不是攻擊者。不過(guò),如果在SQL注入中使用堆棧查詢的話,則危害性可能非常大,因?yàn)樗试S攻擊者在客戶端數(shù)據(jù)庫(kù)上執(zhí)行任意的SQL命令。

        2.3 Web客戶端數(shù)據(jù)損壞

        Web應(yīng)用無(wú)法控制用戶對(duì)客戶端數(shù)據(jù)的修改或刪除。這會(huì)給Web應(yīng)用帶來(lái)影響,這種影響依賴于Web應(yīng)用對(duì)數(shù)據(jù)的使用。比如,如果視頻網(wǎng)站把用戶調(diào)整后的音量保存在Flash的LSO文件中,則對(duì)LSO數(shù)據(jù)的修改或是損壞只能導(dǎo)致音量恢復(fù)到默認(rèn)值。而如果某個(gè)網(wǎng)站利用Cookie中的某個(gè)值來(lái)表示用戶的類型(普通用戶或者管理員),對(duì)這個(gè)值的修改則可以讓普通用戶變成管理員,從而擁有更大的權(quán)限。

        2.4 Web客戶端數(shù)據(jù)泄露

        Web應(yīng)用對(duì)存儲(chǔ)在客戶端的數(shù)據(jù)并沒(méi)有多少控制,所以它無(wú)法保證數(shù)據(jù)的完整性。當(dāng)存儲(chǔ)的數(shù)據(jù)需要保密,或者能夠用來(lái)訪問(wèn)敏感信息時(shí),數(shù)據(jù)泄露就成為一個(gè)嚴(yán)重問(wèn)題。像XSS和SQL注入攻擊會(huì)讓W(xué)eb客戶端數(shù)據(jù)處于危險(xiǎn)中。另外,當(dāng)攻擊者能夠訪問(wèn)用戶的文件系統(tǒng)時(shí),數(shù)據(jù)泄露也會(huì)發(fā)生。讓W(xué)eb客戶端數(shù)據(jù)泄露更加復(fù)雜的一個(gè)因素是大部分這類數(shù)據(jù)并沒(méi)有生命期(Cookies是一個(gè)例外),可以長(zhǎng)期保存在用戶的計(jì)算機(jī)上,這增加了數(shù)據(jù)泄露的可能性。

        2.5 繞過(guò)同一來(lái)源策略

        同一來(lái)源策略對(duì)于保護(hù)Web客戶端數(shù)據(jù)是極為重要的,繞過(guò)該策略會(huì)導(dǎo)致嚴(yán)重的后果。那么,攻擊者如何繞過(guò)同一來(lái)源策略呢?首先,XSS的所有變種都允許攻擊者繞過(guò)同一來(lái)源策略,因?yàn)樗軌蜃屇_本在被攻擊的域的上下文中運(yùn)行;其次,Web瀏覽器中的某些漏洞也會(huì)導(dǎo)致無(wú)法正常實(shí)施該策略。此類漏洞在許多瀏覽器上都存在。還有,DNS服務(wù)器的DNS緩存污染也可以用來(lái)繞過(guò)該策略。

        另外,當(dāng)Web應(yīng)用沒(méi)有恰當(dāng)?shù)囟x來(lái)源的時(shí)候,也會(huì)出現(xiàn)繞過(guò)同一來(lái)源策略的問(wèn)題。比如,Cookie機(jī)制允許開(kāi)發(fā)者使用“domain”屬性設(shè)置來(lái)源。假如站點(diǎn)good.enjoy.com所指定的域是.enjoy.com。當(dāng)域enjoy.com下的不同(虛擬)主機(jī)的所有權(quán)分散的時(shí)候,攻擊者可以建立一個(gè)域名為devil.enjoy.com的網(wǎng)站,然后他就可以訪問(wèn)站點(diǎn)good.enjoy.com保存的cookie信息。在博客和社交網(wǎng)站上,這是一個(gè)典型的問(wèn)題,因?yàn)榇藭r(shí)每個(gè)用戶在相同的主域下都有自己的虛擬主機(jī)名。相似的問(wèn)題也存在于共享服務(wù)器上——幾個(gè)用戶共享同一個(gè)主機(jī)上的Web空間。

        3 Web客戶端數(shù)據(jù)存儲(chǔ)安全風(fēng)險(xiǎn)對(duì)策

        3.1 不要信任本地存儲(chǔ)的數(shù)據(jù)

        由于Web應(yīng)用無(wú)法控制客戶端數(shù)據(jù)的完整性,Web應(yīng)用開(kāi)發(fā)者永遠(yuǎn)不應(yīng)該信任本地存儲(chǔ)的數(shù)據(jù)。如果你的Web應(yīng)用確實(shí)需要在客戶端存儲(chǔ)數(shù)據(jù),而你又希望數(shù)據(jù)是完整可靠的,則可以使用數(shù)字簽名技術(shù)來(lái)保證數(shù)據(jù)的完整性。

        3.2 使用加密技術(shù)

        加密Web客戶端數(shù)據(jù)可以在一定程度上阻止惡意程序讀取明文數(shù)據(jù)。在客戶端解密數(shù)據(jù)會(huì)泄漏明文,加密和解密操作必須在Web服務(wù)器上進(jìn)行。不過(guò),加密技術(shù)并不能保證客戶端數(shù)據(jù)總是安全的。如果服務(wù)器解密數(shù)據(jù)后又把明文信息返回給瀏覽器,攻擊者仍然有可能利用XSS來(lái)獲得信息。

        3.3 防止XSS

        對(duì)于傳統(tǒng)的XSS,可以通過(guò)在服務(wù)器端腳本中引入適當(dāng)?shù)妮敵鼍幋a機(jī)制來(lái)解決。不過(guò),如果使用Web客戶端數(shù)據(jù),服務(wù)器可能無(wú)法看到它們,因此無(wú)法重新編碼。當(dāng)信息存儲(chǔ)在客戶端并由客戶端的腳本檢索的時(shí)候,這種情況就可能發(fā)生。為了防止客戶端XSS,開(kāi)發(fā)者需要在客戶端以JavaScript函數(shù)的形式引入輸出編碼機(jī)制。這種編碼機(jī)制主要是在輸出的數(shù)據(jù)中重新編碼不安全的字符,比如,把小于號(hào)“<”編碼成“l(fā)t;”。這會(huì)讓攻擊者在Web應(yīng)用的輸出中注入標(biāo)簽(這樣就可以執(zhí)行惡意JavaScript腳本)的行為變得非常困難。

        3.4 使用參數(shù)化的查詢

        如果在Web應(yīng)用中使用客戶端數(shù)據(jù)庫(kù),同時(shí)使用SQL接口(如HTML 5 Web SQL Database),應(yīng)該使用參數(shù)化的查詢而不是動(dòng)態(tài)串方式。

        3.5 指定的數(shù)據(jù)來(lái)源應(yīng)盡可能窄

        如果指定的數(shù)據(jù)來(lái)源過(guò)于寬松,存儲(chǔ)在用戶端的數(shù)據(jù)可能會(huì)被其他Web應(yīng)用讀取。在共享域中,這個(gè)問(wèn)題更加嚴(yán)重。如果采用Cookies技術(shù),可以使用“path”屬性來(lái)進(jìn)一步縮小允許讀寫(xiě)數(shù)據(jù)的來(lái)源。然而,較新的存儲(chǔ)技術(shù)如HTML 5客戶端存儲(chǔ)技術(shù)并不支持類似的機(jī)制[7],這意味著在共享服務(wù)器上不應(yīng)該使用這類存儲(chǔ)技術(shù)。

        3.6 及時(shí)刪除不再使用的客戶端數(shù)據(jù)

        除了Cookies,其他Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)并不支持?jǐn)?shù)據(jù)的自動(dòng)刪除。為了防止這種情況的發(fā)生,Web應(yīng)用應(yīng)負(fù)責(zé)刪除不再需要的數(shù)據(jù)。

        4 結(jié)束語(yǔ)

        Web客戶端數(shù)據(jù)存儲(chǔ)技術(shù)的發(fā)展,在給Web應(yīng)用帶來(lái)方便的同時(shí)也引入了安全風(fēng)險(xiǎn)。這些風(fēng)險(xiǎn)是Web應(yīng)用開(kāi)發(fā)者必須回避的。有些風(fēng)險(xiǎn)從Cookies開(kāi)始就已經(jīng)存在了。不過(guò)新的存儲(chǔ)技術(shù)所采用的存儲(chǔ)機(jī)制的確帶來(lái)了新的安全威脅,比如客戶端XSS和客戶端SQL注入。另外,大容量存儲(chǔ)機(jī)制的采用,也使得更多的重要信息保存在客戶端,這會(huì)吸引惡意用戶把客戶端數(shù)據(jù)作為重要的攻擊目標(biāo),增大了Web應(yīng)用遭受攻擊的威脅。本文對(duì)Web客戶端數(shù)據(jù)存儲(chǔ)的風(fēng)險(xiǎn)分析及所給出的應(yīng)對(duì)措施,能夠有效降低Web應(yīng)用的安全風(fēng)險(xiǎn),對(duì)Web應(yīng)用開(kāi)發(fā)者來(lái)說(shuō)具有較大的參考價(jià)值。

        參考文獻(xiàn):

        [1] Boneh, Dan. \"Cookie Same Origin Policy.\"[EB/OL].http://crypto.

        stanford.edu/cs142/lectures/10-cookie-security.pdf,2009.1.

        [2] Adobe. \"Manage, disable Local Shared Objects | Flash Player\"[EB/

        OL].http://kb2.adobe.com/cps/526/52697ee8.html,2011.4.

        [3] Microsoft. \"Silverlight Overview.\"[EB/OL].http://msdn.microsoft.

        com/en-us/library/bb404700(v=vs.95).aspx.,2011.1.

        [4] Gears Team.\"Gears and Security-Gears API-Google Code.\"[EB/

        OL].http://code.google.com/intl/pl/apis/gears/security.html.

        [5] Hickson,Ian.\"Web SQL Database.\"[EB/OL].http://www.w3.org/

        TR/2010/NOTE-webdatabase-20101118/W3C,2010.11.

        [6] 褚誠(chéng)云.Web安全開(kāi)發(fā):SQL注入攻擊和網(wǎng)頁(yè)掛馬[J].程序員,

        2008.7.

        [7] Trivero,Alberto.\"Abusing HTML 5 Structured Client-side Storage.\"

        [EB/OL].http://packetstorm.orionhosting.co.uk/papers/general/html5whitepaper.pdf,2008.7.

        中国丰满熟妇xxxx| 中文字幕av人妻少妇一区二区| 久久影院午夜理论片无码| 欧美饥渴熟妇高潮喷水水| 亚洲av无码久久| 国产精品污www一区二区三区| 国产美女高潮流白浆在线观看 | 人妻丰满av∨中文久久不卡| 日产乱码一区二区国产内射| 国产成人国产三级国产精品| 亚洲av无码一区二区三区天堂古代 | av黄色在线免费观看| 风流老熟女一区二区三区| 香蕉色香蕉在线视频| 综合久久青青草免费观看视频| 精品国产三级a在线观看不卡| 青草内射中出高潮| 国产欧美一区二区成人影院| 日韩av中文字幕一卡二卡| 蜜桃18禁成人午夜免费网站| 国产亚洲精品aaaa片小说| 亚洲AV无码一区二区三区性色学| 人妻有码中文字幕在线| 国产精品久久久爽爽爽麻豆色哟哟| 国产熟妇另类久久久久| 国产精品二区在线观看| 久久99精品免费国产| 亚洲av免费手机在线观看| 成年无码av片完整版| 精品国产乱码一区二区三区在线| 国产自拍视频免费在线观看| 台湾佬中文娱乐网22| 在线免费黄网| 亚洲全国最大的人成网站| 强开小婷嫩苞又嫩又紧视频 | 啪啪无码人妻丰满熟妇| 亚洲伊人伊成久久人综合| 女人18毛片a级毛片| 中国极品少妇videossexhd| 一区二区韩国福利网站| 女人天堂国产精品资源麻豆|