摘 要: 本文分析了Web應(yīng)用中使用“Cookie”技術(shù)存在的多種安全隱患,討論了在B/S模式下如何實(shí)現(xiàn)Web安全會(huì)話,給出解決“Cookie”安全隱患時(shí)使用的多種技術(shù)和方法。
關(guān)鍵詞: Web應(yīng)用 Cookie 安全隱患 安全會(huì)話
Internet實(shí)用技術(shù)的普及使網(wǎng)絡(luò)服務(wù)成為人們生活中不可缺少的部分,其中以Web應(yīng)用尤為突出,Web應(yīng)用中的安全對(duì)用戶來(lái)說(shuō)是非常重要的。本文將對(duì)影響Web應(yīng)用程序安全性的一個(gè)重要因素“Cookie”進(jìn)行研究分析,提出一些針對(duì)“Cookie”實(shí)現(xiàn)安全會(huì)話的一些技術(shù)和方法。
1.Cookie技術(shù)概述
Cookie是瀏覽器訪問(wèn)Web服務(wù)器的某個(gè)資源時(shí),由Web服務(wù)器在Http響應(yīng)消息頭中附帶傳給瀏覽器的一段數(shù)據(jù),這段數(shù)據(jù)存儲(chǔ)在客戶端的硬盤中,在以后每次訪問(wèn)Web服務(wù)器時(shí),都應(yīng)在Http請(qǐng)求頭中將這段數(shù)據(jù)回傳給Web服務(wù)器的一種技術(shù)。
Cookie是一個(gè)小文本文件,由六個(gè)子項(xiàng)構(gòu)成:名稱.有效期、域名、路徑、安全、串?dāng)?shù)據(jù)。名稱項(xiàng)是該Cookie的標(biāo)識(shí)。有效期項(xiàng)定義Cookie的生存期。域名項(xiàng)和路徑項(xiàng)便于瀏覽器訪問(wèn)特定URL主機(jī)時(shí),搜索對(duì)應(yīng)Cookie。安全項(xiàng)說(shuō)明cookie是否用tls或https這樣的安全協(xié)議進(jìn)行傳輸。串?dāng)?shù)據(jù)項(xiàng)用于存貯cookie內(nèi)剩余信息。
文件名稱格式為:用戶名@網(wǎng)站地址.[數(shù)字].txt.。例如:administrator@yahoo.com[1].txt。文件內(nèi)容格式為:naSme=value;expires=date;path=path;domain=domain_name;secure等。
利用Cookie文件,可以實(shí)現(xiàn)許多功能,如:(1)利用Cookie可根據(jù)用戶點(diǎn)擊率進(jìn)行欄目設(shè)定,動(dòng)態(tài)地產(chǎn)生用戶所需的信息。(2)記錄站點(diǎn)軌跡,供開發(fā)人員參考實(shí)現(xiàn)高質(zhì)量的Web系統(tǒng)。(3)使用Cookie解決了Http協(xié)議有關(guān)用戶身份驗(yàn)證的一些問(wèn)題,實(shí)現(xiàn)有狀態(tài)會(huì)話。(4)使用Cookie可以把一個(gè)瀏覽器訪問(wèn)的同一個(gè)服務(wù)器上的所有程序連貫起來(lái)。(5)利用Cookie收集大量用戶信息,實(shí)現(xiàn)一些商業(yè)目的等 [1]。
2.Web應(yīng)用中使用Cookie技術(shù)進(jìn)行會(huì)話時(shí)存在的隱患
一個(gè)客戶端瀏覽器與Web服務(wù)器之間連續(xù)發(fā)生的一系列請(qǐng)求和響應(yīng)過(guò)程就是會(huì)話。在B/S模式會(huì)話過(guò)程中存在以下一些隱患。
B/S會(huì)話過(guò)程的兩種情況:(1)不帶標(biāo)識(shí)會(huì)話:瀏覽器主動(dòng)發(fā)出一個(gè)請(qǐng)求,Web服務(wù)器被動(dòng)的反饋一個(gè)結(jié)果,只要瀏覽器上發(fā)出的請(qǐng)求消息完全一樣,不管這個(gè)請(qǐng)求消息是在哪個(gè)主機(jī)上的那種瀏覽器上發(fā)出的,Web服務(wù)器都用完全一樣的方式進(jìn)行反饋。(2)帶標(biāo)識(shí)(sessionID)會(huì)話:Web服務(wù)器在一段時(shí)間內(nèi)收到多個(gè)客戶瀏覽器帶標(biāo)識(shí)(sessionID)的訪問(wèn)請(qǐng)求消息,Web服務(wù)器根據(jù)不同的會(huì)話(sessionID)作出相應(yīng)的反饋。會(huì)話(sessionID)在Web網(wǎng)站中常常是通過(guò)Cookie技術(shù)在請(qǐng)求消息中進(jìn)行傳遞,也可以作為請(qǐng)求URL的附加參數(shù)進(jìn)行傳遞[2]。一個(gè)Web瀏覽器可以存儲(chǔ)多個(gè)Web站點(diǎn)提供的Cookie,Cookie好比商業(yè)活動(dòng)中發(fā)放的會(huì)員卡,不同的會(huì)員卡上記載不同的信息,顧客接受了這張會(huì)員卡,以后每次進(jìn)行商業(yè)活動(dòng)時(shí),都將攜帶這張會(huì)員卡,商務(wù)活動(dòng)也根據(jù)這張會(huì)員卡上記載的信息提供一些特殊事務(wù)處理。
Cookie在服務(wù)器和用戶瀏覽器間信息傳遞實(shí)行的是開放式機(jī)制,實(shí)際上服務(wù)器所做的僅僅是將處理Cookie的請(qǐng)求送給瀏覽器,讓瀏覽器去讀寫Cookie文件,然后Cookie的內(nèi)容會(huì)包含在瀏覽器的請(qǐng)求信息中傳遞給服務(wù)器。Cookie文件在網(wǎng)絡(luò)上特殊的傳遞流程,存儲(chǔ)在客戶端硬盤中及Cookie內(nèi)容有涉密信息等特性,一旦被用意不良的人獲取,將導(dǎo)致隱私數(shù)據(jù)泄密,Cookie被改寫就可以達(dá)到欺騙服務(wù)程序的目的或者通過(guò)Cookie搜集用戶信息進(jìn)行某些非法商業(yè)活動(dòng)。
3.解除Cookie安全隱患的技術(shù)和方法
Cookie的防范可從四個(gè)方面考慮:加強(qiáng)對(duì)于Cookie的安全防范意識(shí)、配置安全的瀏覽器、服務(wù)器端Web系統(tǒng)的安全設(shè)計(jì)、使用第三方Cookie管理工具。
3.1加強(qiáng)對(duì)于Cookie的安全防范意識(shí)
隨著電子商務(wù)的興起和互聯(lián)網(wǎng)上巨大商機(jī)的出現(xiàn),一些網(wǎng)站和機(jī)構(gòu)濫用Cookie,未經(jīng)訪問(wèn)者的許可,利用搜索引擎技術(shù)、數(shù)據(jù)挖掘技術(shù)、甚至是網(wǎng)絡(luò)欺騙技術(shù)搜集他人的個(gè)人資料,達(dá)到構(gòu)建用戶數(shù)據(jù)庫(kù),發(fā)送廣告等營(yíng)利目的,造成用戶個(gè)人隱私的泄露[3]。對(duì)于以上所述,Cookie與用戶隱私權(quán)的問(wèn)題并沒有相關(guān)法律約束。有的是個(gè)人的警惕性不夠,意識(shí)不到“Cookie”固有的安全隱患。因此用戶要提高隱私保護(hù)意識(shí),國(guó)家應(yīng)建立和健全網(wǎng)絡(luò)隱私保護(hù)的法律和法規(guī),規(guī)范和監(jiān)督網(wǎng)站采取合法的隱私保護(hù)措施。
3.2配置安全的瀏覽器
用戶可以自主配置瀏覽器確保Cookie安全。例如:在瀏覽器的隱私策略里面對(duì)Cookie進(jìn)行接受、拒絕、提示等設(shè)置。安裝版本較新,技術(shù)比較成熟的瀏覽器。例如:Internet Explorer7.0、Firefox3.0等瀏覽器對(duì)Cookie安全性設(shè)計(jì)的好。登錄某些敏感網(wǎng)站,要及時(shí)刪除Cookie文件內(nèi)容或把文件屬性設(shè)置為只讀和隱藏。登錄Web系統(tǒng)要按系統(tǒng)要求退出Web系統(tǒng)。專業(yè)人員也可以使用客戶端加密技術(shù)、Mac技術(shù)、數(shù)字簽名技術(shù)和時(shí)間戳技術(shù)[4]。
3.3服務(wù)器端Web系統(tǒng)的安全設(shè)計(jì)
瀏覽器不用關(guān)心和理解Cookie的值部分的意義和格式,只是將這部分內(nèi)容原封不動(dòng)地返回給Web服務(wù)器,只要Web服務(wù)器能理解值部分的意義就行。對(duì)于Web系統(tǒng)開發(fā)人員而言,應(yīng)該注意在Cookie中保存一些不重要的數(shù)據(jù)。如對(duì)應(yīng)用程序沒有重大影響的信息,如果確實(shí)需要在Cookie中保存某些敏感信息,就要對(duì)其加密,加密的方法很多,比較簡(jiǎn)單的有:Base64,Md5,Sha DES,RC2等,以防被他人盜用,還可以對(duì)Cookie的屬性進(jìn)行設(shè)置(例如:Cookie中HttpOnly的參數(shù),這個(gè)HttpOnly被設(shè)置后,在瀏覽器的Document對(duì)象中就看不到Cookie了,而瀏覽器在瀏覽的時(shí)候不受任何影響。HttpOnly在IE6以上,F(xiàn)irefox較新版本都得到了比較好的支持,并且在如Hotmail等應(yīng)用程序里都有廣泛的使用,并且已經(jīng)是取得了比較好的安全效果。),使用安全套接層協(xié)議(SSL)及HTTPS協(xié)議等進(jìn)行傳輸。
3.4使用第三方Cookie管理工具
Cookie管理工具非常多,Cookie Pal是一款現(xiàn)在比較流行專門用于管理Cookie的軟件,可運(yùn)行于Windows 9x/Me/2000等操作系統(tǒng),它可以幫助我們自動(dòng)接受或拒絕來(lái)自某些指定服務(wù)器所存放的Cookie,也可以查看或刪除系統(tǒng)中已經(jīng)保存的Cookie。下載后,我們將得到一個(gè)420KB的EXE文件,直接用鼠標(biāo)左鍵雙擊該文件即進(jìn)入安裝向?qū)С绦颍缓笠勒仗崾具B續(xù)確認(rèn)便可完成安裝。
4.結(jié)語(yǔ)
Cookie技術(shù)給用戶提供了方便,但帶來(lái)了許多安全隱患。本文通過(guò)對(duì)“Cookie”的安全隱患進(jìn)行了分析,并給出多種解除“Cookie”安全隱患的技術(shù)和方法從而實(shí)現(xiàn)較為安全的會(huì)話。
參考文獻(xiàn):
[1]孟曉明.防范Cookie泄密的一些對(duì)策[J].計(jì)算機(jī)時(shí)代,2005,(4).
[2]張孝祥.深入體驗(yàn)Java Web開發(fā)內(nèi)幕[M].北京:電子工業(yè)出版社,2006.
[3]李景峰,祝躍飛,張棟.用戶控制下Cookie安全研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,(14).
[4]許力,鄭寶玉.Cross Layer Coordinated Energy Saving Strategy in MANET[J].2003,(6):455-459.