對于Cookie你了解多少?Cookie在英文中是小甜品de意思,而這個詞我們總能在瀏覽器中看到,食品怎么會跟瀏覽器扯上關(guān)系呢?在你瀏覽以前登陸過de網(wǎng)站時可能會在網(wǎng)頁中出現(xiàn):你好XX,感覺很親切,就好像是吃了一個小甜品一樣。這其實(shí)是通過訪問你主機(jī)里邊de一個文件來實(shí)現(xiàn)de,因此這個文件也就被稱為了Cookie。想全面了解Cookie嗎?看看下文吧!
一、了解Cookie 適用對象:初級讀者
Cookie是當(dāng)你瀏覽某網(wǎng)站時,網(wǎng)站存儲在你機(jī)器上de一個小文本文件,它記錄了你de用戶ID,密碼、瀏覽過de網(wǎng)頁、停留de時間等信息,當(dāng)你再次來到該網(wǎng)站時,網(wǎng)站通過讀取Cookie,得知你de相關(guān)信息,就可以做出相應(yīng)de動作,如在頁面顯示歡迎你de標(biāo)語,或者讓你不用輸入ID、密碼就直接登錄等等。你可以在IEde“工具/Internet選項”de“常規(guī)”選項卡中,選擇“設(shè)置/查看文件”,查看所有保存到你電腦里deCookie。這些文件通常是以user@domain格式命名de,user是你de本地用戶名,domain是所訪問de網(wǎng)站de域名。如果你使用NetsCape瀏覽器,則存放在“C:\PROGRAMFILES\NETSCAPE\USERS\”里面,與IE不同de是,NETSCAPE是使用一個Cookie文件記錄所有網(wǎng)站deCookies。
為了保證上網(wǎng)安全我們需要對Cookie進(jìn)行適當(dāng)設(shè)置。打開“工具/Internet選項”中de“隱私”選項卡(注意該設(shè)置只在IE6.0中存在,其他版本IE可以在“工具/Internet選項”de“安全”標(biāo)簽中單擊“自定義級別”按鈕,進(jìn)行簡單調(diào)整),調(diào)整Cookiede安全級別。通常情況,可以將滑塊調(diào)整到“中高”或者“高”de位置。多數(shù)de論壇站點(diǎn)需要使用Cookie信息,如果你從來不去這些地方,可以將安全級調(diào)到“阻止所有Cookies”。如果只是為了禁止個別網(wǎng)站deCookie,可以單擊“編輯”按鈕,將要屏蔽de網(wǎng)站添加到列表中。在“高級”按鈕選項中,你可以對第一方Cookie和第三方deCookie進(jìn)行設(shè)置,第一方Cookie是你正在瀏覽de網(wǎng)站deCookie,第三方Cookie非正在瀏覽de網(wǎng)站發(fā)給你deCookie,通常要對第三方Cookie選擇“拒絕”。你如果需要保存Cookie,可以使用IEde“導(dǎo)入導(dǎo)出”功能,打開“文件/導(dǎo)入導(dǎo)出”,按提示操作即可。
Cookie中de內(nèi)容大多數(shù)經(jīng)過了加密處理,因此在我們看來只是一些毫無意義de字母數(shù)字組合,只有服務(wù)器deCGI處理程序才知道它們真正de含義。通過一些軟件我們可以查看到更多de內(nèi)容,使用Cookie Pal軟件查看到deCookie信息,如圖2所示。它為我們提供了Server、Expires、Name、value等選項de內(nèi)容。其中,Server是存儲Cookiede網(wǎng)站,Expires記錄了Cookiede時間和生命期,Name和value字段則是具體de數(shù)據(jù)。
二、Cookiede傳遞流程 適用對象:中級讀者
當(dāng)在瀏覽器地址欄中鍵入了一個Web站點(diǎn)deURL,瀏覽器會向該Web站點(diǎn)發(fā)送一個讀取網(wǎng)頁de請求,并將結(jié)果在顯示器上顯示。這時該網(wǎng)頁在你de電腦上尋找Amazon網(wǎng)站設(shè)置deCookie文件,如果找到,瀏覽器會把Cookie文件中de數(shù)據(jù)連同前面輸入deURL一同發(fā)送到Amazon服務(wù)器。服務(wù)器收到Cookie數(shù)據(jù),就會在他de數(shù)據(jù)庫中檢索你deID,你de購物記錄、個人喜好等信息,并記錄下新de內(nèi)容,增加到數(shù)據(jù)庫和Cookie文件中去。如果沒有檢測到Cookie或者你deCookie信息與數(shù)據(jù)庫中de信息不符合,則說明你是第一次瀏覽該網(wǎng)站,服務(wù)器deCGI程序?qū)槟銊?chuàng)建新deID信息,并保存到數(shù)據(jù)庫中。
Cookie是利用了網(wǎng)頁代碼中deHTTP頭信息進(jìn)行傳遞de,瀏覽器de每一次網(wǎng)頁請求,都可以伴隨Cookie傳遞,例如,瀏覽器de打開或刷新網(wǎng)頁操作。服務(wù)器將Cookie添加到網(wǎng)頁deHTTP頭信息中,伴隨網(wǎng)頁數(shù)據(jù)傳回到你de瀏覽器,瀏覽器會根據(jù)你電腦中deCookie設(shè)置選擇是否保存這些數(shù)據(jù)。如果瀏覽器不允許Cookie保存,則關(guān)掉瀏覽器后,這些數(shù)據(jù)就消失。Cookie在電腦上保存de時間是不一樣de,這些都是由計算機(jī)服務(wù)器de設(shè)置不同決定得。Cookie有一個Expires(有效期)屬性,這個屬性決定了Cookiede保存時間,服務(wù)器可以通過設(shè)定Expires字段de數(shù)值,來改變Cookiede保存時間。如果不設(shè)置該屬性,那么Cookie只在瀏覽網(wǎng)頁期間有效,關(guān)閉瀏覽器,這些Cookie自動消失,絕大多數(shù)網(wǎng)站屬于這種情況。通常情況下,Cookie包含Server、Expires、Name、value這幾個字段,其中對服務(wù)器有用de只是Name和value字段,Expires等字段de內(nèi)容僅僅是為了告訴瀏覽器如何處理這些Cookies。
三、Cookiede編程實(shí)現(xiàn) 適用對象:高級讀者
多數(shù)網(wǎng)頁編程語言都提供了對Cookiede支持。如javascript、VBScript、Delphi、ASP、SQL、PHP、C#等。在這些面向?qū)ο骴e編程語言中,對Cookiede編程利用基本上是相似de,大體過程為:先創(chuàng)建一個Cookie對象(Object),然后利用控制函數(shù)對Cookie進(jìn)行賦值、讀取、寫入等操作。那么如何通過代碼來獲取其他用戶Cookie中de敏感信息?下面進(jìn)行簡單de介紹。
該方法主要有兩步,首先要定位你需要收集Cookiede網(wǎng)站,并對其進(jìn)行分析,并構(gòu)造URL;然后編制收集CookiedePHP代碼,并將其放到你可以控制de網(wǎng)站上,當(dāng)不知情者單擊了你構(gòu)造deURL后可以執(zhí)行該P(yáng)HP代碼。
四、Cookiede安全問題 適用對象:所有希望上網(wǎng)安全de讀者
1.Cookie欺騙
Cookie記錄著用戶de帳戶ID、密碼之類de信息,如果在網(wǎng)上傳遞,通常使用de是MD5方法加密。這樣經(jīng)過加密處理后de信息,即使被網(wǎng)絡(luò)上一些別有用心de人截獲,也看不懂,因為他看到de只是一些無意義de字母和數(shù)字。然而,現(xiàn)在遇到de問題是,截獲Cookiede人不需要知道這些字符串de含義,他們只要把別人deCookie向服務(wù)器提交,并且能夠通過驗證,他們就可以冒充受害人de身份,登陸網(wǎng)站。這種方法叫做Cookie欺騙。Cookie欺騙實(shí)現(xiàn)de前提條件是服務(wù)器de驗證程序存在漏洞,并且冒充者要獲得被冒充de人deCookie信息。目前網(wǎng)站de驗證程序要排除所有非法登錄是非常困難de,例如,編寫驗證程序使用de語言可能存在漏洞。而且要獲得別人Cookie是很容易de,用支持Cookiede語言編寫一小段代碼就可以實(shí)現(xiàn)(具體方法見三),只要把這段代碼放到網(wǎng)絡(luò)里,那么所有人deCookie都能夠被收集。如果一個論壇允許HTML代碼或者允許使用Flash標(biāo)簽就可以利用這些技術(shù)收集Cookiede代碼放到論壇里http://www.woaidiannao.com,然后給帖子取一個吸引人de主題,寫上有趣de內(nèi)容,很快就可以收集到大量deCookie。在論壇上,有許多人de密碼就被這種方法盜去de。至于如何防范,目前還沒有特效藥,我們也只能使用通常de防護(hù)方法,不要在論壇里使用重要de密碼,也不要使用IE自動保存密碼de功能,以及盡量不登陸不了解底細(xì)de網(wǎng)站。
2.Flashde代碼隱患
Flash中有一個getURL()函數(shù),F(xiàn)lash可以利用這個函數(shù)自動打開指定de網(wǎng)頁。因此它可能把你引向一個包含惡意代碼de網(wǎng)站。打個比方,當(dāng)你在自己電腦上欣賞精美deFlash動畫時,動畫幀里de代碼可能已經(jīng)悄悄地連上網(wǎng),并打開了一個極小de包含有特殊代碼de頁面。這個頁面可以收集你deCookie、也可以做一些其他de事情,比如在你de機(jī)器上種植木馬甚至格式化你de硬盤等等。對于Flashde這種行為,網(wǎng)站是無法禁止de,因為這是Flash文件de內(nèi)部行為。我們所能做到de,如果是在本地瀏覽盡量打開防火墻,如果防火墻提示de向外發(fā)送de數(shù)據(jù)包并不為你知悉,最好禁止。如果是在Internet上欣賞,最好找一些知名de大網(wǎng)站。