- 相關(guān)推薦
Web端cookie知識(shí)介紹
Cookie,有時(shí)也用其復(fù)數(shù)形式Cookies。類型為“小型文本文件”,是某些網(wǎng)站為了辨別用戶身份,進(jìn)行Session跟蹤而儲(chǔ)存在用戶本地終端上的數(shù)據(jù)(通常經(jīng)過(guò)加密),由用戶客戶端計(jì)算機(jī)暫時(shí)或永久保存的信息。下面是小編帶來(lái)的Web端cookie知識(shí)介紹,希望對(duì)你有幫助。
首先,我們要關(guān)注什么是cookie以及cookie是如何工作的。當(dāng)對(duì)cookie的定義以及工作原理、如何獲得存儲(chǔ)在硬盤上的cookie以及應(yīng)該怎樣對(duì)cookie進(jìn)行編輯、設(shè)置有一個(gè)比較清晰地認(rèn)識(shí)時(shí),那么cookie測(cè)試你就會(huì)游刃有余了。
什么是cookie?
cookie是web服務(wù)器存儲(chǔ)在客戶端硬盤上的一小段文本信息。這些信息存儲(chǔ)后用于Web瀏覽器去檢索來(lái)自相關(guān)計(jì)算機(jī)的信息。通常,cookie包含用于在不同網(wǎng)頁(yè)之間通信的個(gè)性化用戶數(shù)據(jù)和信息。
為什么使用cookie?
cookie標(biāo)識(shí)著計(jì)算機(jī)上用戶的身份,并用于跟蹤用戶瀏覽整個(gè)網(wǎng)站頁(yè)面的過(guò)程。我們知道Web瀏覽器和Web服務(wù)器之間的通信是無(wú)狀態(tài)的。
比如,你訪問(wèn)域名http://www.example.com/1.html,Web瀏覽器將查詢來(lái)自example.com網(wǎng)絡(luò)服務(wù)器的1.html頁(yè)面,下次當(dāng)你輸入網(wǎng)址http://www.example.com/2.html的時(shí)候,瀏覽器就會(huì)發(fā)送新的請(qǐng)求發(fā)給example.com網(wǎng)絡(luò)服務(wù)器的2.html網(wǎng)頁(yè),而整個(gè)過(guò)程中Web服務(wù)器根本不知道前一頁(yè)1.html已經(jīng)提供過(guò)相關(guān)服務(wù)了。
如果你想讓W(xué)eb服務(wù)器知道該用戶在前一段時(shí)間的通信歷史,就需要在Web瀏覽器和Web服務(wù)器的交互過(guò)程中維持用戶的狀態(tài)信息,而這正是cookie作用的地方。因此,cookie服務(wù)的目的是維持Web服務(wù)器和用戶間的交互。
cookie是怎樣工作的?
用來(lái)在網(wǎng)絡(luò)上進(jìn)行超文本信息傳輸?shù)腍TTP協(xié)議負(fù)責(zé)維護(hù)cookie。事實(shí)上HTTP協(xié)議有兩種類型,無(wú)狀態(tài)的HTTP協(xié)議和有狀態(tài)HTTP協(xié)議。無(wú)狀態(tài)HTTP協(xié)議不保留以前訪問(wèn)過(guò)的網(wǎng)頁(yè)的歷史記錄。但是有狀態(tài)HTTP協(xié)議將會(huì)保留Web瀏覽器和Web服務(wù)器交互的一些歷史,有狀態(tài)HTTP協(xié)議將使用cookie來(lái)維持用戶交互。
當(dāng)你訪問(wèn)一個(gè)使用cookie的網(wǎng)站或網(wǎng)頁(yè)時(shí),網(wǎng)頁(yè)中的一小段代碼(js、php和perl等腳本語(yǔ)言)將會(huì)把cookie寫入到用戶的機(jī)器中。
下面是用來(lái)寫cookie的一個(gè)例子,它可以放置任何HTML網(wǎng)頁(yè)內(nèi):
Set-Cookie:NAME=VALUE;expires=DATE;path=PATH;domain=DOMAIN_NAME;
譯者注:若您想模擬響應(yīng)Cookie,可使用三劍客接口測(cè)試平臺(tái)Xmock模塊。
當(dāng)用戶訪問(wèn)同一頁(yè)面或同一域以后,這個(gè)cookie將會(huì)從磁盤中被讀取并用于識(shí)別該域的同一個(gè)用戶的第二次訪問(wèn)。另外需要解釋的是cookie的過(guò)期時(shí)間設(shè)置,這個(gè)時(shí)間是由使用cookie的應(yīng)用決定的。
通常有兩種類型的cookie會(huì)被寫入用戶的計(jì)算機(jī)上。
1)會(huì)話cookie:從打開(kāi)瀏覽器開(kāi)始,這個(gè)cookie就是活躍的,直到我們關(guān)閉瀏覽器,這個(gè)cookie才會(huì)被刪除。有些時(shí)候應(yīng)用程序也會(huì)將該cookie的過(guò)期時(shí)間設(shè)置為20分鐘。
2)永久cookie:它是永久寫入用戶機(jī)器上的,有效期可以持續(xù)數(shù)月或數(shù)年。
cookie在哪里存儲(chǔ)?
任何網(wǎng)頁(yè)應(yīng)用程序?qū)懭氲腸ookie都會(huì)被保存在用戶本地硬盤的一個(gè)文本文件中。而且cookie的存儲(chǔ)路徑也與瀏覽器的設(shè)置有關(guān)。不同的瀏覽器會(huì)在不同的路徑下存儲(chǔ)cookie。例如IE瀏覽器存儲(chǔ)cookie的路徑為 “C:Users Default User AppDataRoamingMicrosoftWindowsCookies”,這里的“Default User”表示當(dāng)前登錄的用戶,比如 “Administrator”等。
通過(guò)瀏覽器導(dǎo)航選項(xiàng)可以很容易的發(fā)現(xiàn)cookie的存儲(chǔ)位置。在Mozilla Firefox瀏覽器的選項(xiàng)中,你甚至可以看到cookie的數(shù)據(jù)信息。具體操作為:打開(kāi)Mozilla Firefox瀏覽器,點(diǎn)擊工具- >選項(xiàng)- >隱私,然后點(diǎn)擊“顯示cookie”按鈕。
cookie是怎么存儲(chǔ)的?
讓我們來(lái)舉一個(gè)例子,在Mozilla Firefox瀏覽器寫下rediff.com的cookie,當(dāng)在Mozilla Firefox瀏覽器打開(kāi)網(wǎng)址rediff.com或登錄rediff賬戶時(shí),一個(gè)cookie就被寫入到你的硬盤上。要查看此cookie只需找到上面提到的路徑點(diǎn)擊“顯示Cookie”按鈕。點(diǎn)擊Rediff.com站點(diǎn)下這個(gè)cookie列表。你可以看到不同rediff域名寫入的不同cookie。
cookie的應(yīng)用場(chǎng)景
1)要實(shí)現(xiàn)購(gòu)物車:你可以用來(lái)維持在線訂購(gòu)系統(tǒng)的一些狀態(tài),能夠記住用戶想要買什么。假設(shè)用戶在他們的購(gòu)物車增加了一些產(chǎn)品,但是由于某種原因,用戶不希望購(gòu)買這些產(chǎn)品,并關(guān)閉了瀏覽器窗口,而當(dāng)下次相同的用戶訪問(wèn)購(gòu)買頁(yè)面,他是可以看到自己上一次訪問(wèn)過(guò)程中在購(gòu)物車添加的商品的。
2)個(gè)性化網(wǎng)站:用戶在瀏覽網(wǎng)頁(yè)時(shí),根據(jù)個(gè)人偏好設(shè)置一些網(wǎng)頁(yè)為不可見(jiàn),或是將某些網(wǎng)站設(shè)置為不可訪問(wèn),cookie將會(huì)記住用戶的設(shè)置,下次用戶在瀏覽網(wǎng)頁(yè)的時(shí)候,cookie會(huì)根據(jù)用戶的設(shè)置屏蔽一些網(wǎng)頁(yè)。
3)用戶追蹤:要在特定的時(shí)間里,追蹤一些特殊的訪客。
4)營(yíng)銷:有些公司通過(guò)cookie在用戶的機(jī)器上展示廣告。cookie可以控制這些廣告,什么時(shí)候、以什么樣的形式被展示,同時(shí)也可以用來(lái)判斷什么廣告是用戶感興趣的,哪些關(guān)鍵字是用戶曾在網(wǎng)站上搜索過(guò)的,所有這些東西都會(huì)記錄在cookie中。
5)用戶會(huì)話:cookie可以使用用戶ID和密碼在特定的域追蹤用戶的會(huì)話。
cookie的缺點(diǎn)
1)即使cookie是維持用戶交互的好方法,但是如果用戶設(shè)置瀏覽器為:寫cookie警告或完全禁止cookie,那么包含cookie的網(wǎng)站將被完全禁用,用戶將不能執(zhí)行任何操作,從而造成網(wǎng)站流量的大量丟失。
2)cookie冗余:如果你在每一個(gè)網(wǎng)頁(yè)導(dǎo)航中寫太多cookie,用戶打開(kāi)瀏覽器選項(xiàng):寫cookie警告,這足可以使用戶對(duì)你的網(wǎng)站敬而遠(yuǎn)之。
3)安全問(wèn)題:用戶的個(gè)人信息被存儲(chǔ)在cookie中,如果有黑客劫持了用戶的cookie,則黑客可以訪問(wèn)用戶的個(gè)人信息。甚至別的域也可以讀取一些損壞的cookie,從而帶來(lái)安全問(wèn)題。
4)敏感信息:有些網(wǎng)站可能在cookie中存儲(chǔ)敏感信息,由于涉及隱私,這么做是禁止的。
Test Cases
1)在設(shè)計(jì)文檔中的一種隱私策略是確保個(gè)人信息或敏感數(shù)據(jù)都不要存儲(chǔ)在cookie中。
2)如果沒(méi)有別的選擇,必須要將敏感數(shù)據(jù)存保存在cookie的時(shí)候,那么敏感數(shù)據(jù)需要以一種加密的方式存儲(chǔ)到cookie中。
3)測(cè)試人員必須確保網(wǎng)站上沒(méi)有過(guò)度使用cookie。若瀏覽器頻繁的提示寫入cookie會(huì)給用戶造成很大的困擾,可能導(dǎo)致網(wǎng)站失去流量,并最終失去業(yè)務(wù)。
4)在瀏覽器的設(shè)置中禁用cookie:如果在網(wǎng)站中使用cookie,當(dāng)用戶禁用cookie時(shí),網(wǎng)站主要功能將不起作用,因此,應(yīng)當(dāng)確保沒(méi)有cookie時(shí)網(wǎng)站也是可用的。不應(yīng)該由于禁用cookie而讓頁(yè)面有任何崩潰(在執(zhí)行這個(gè)測(cè)試之前,請(qǐng)確保關(guān)閉所有瀏覽器,并且刪除所有之前寫的cookie)。
5)接受或者拒絕一些cookie:檢查網(wǎng)站的功能最好的辦法是不接受任何cookie。可以在web應(yīng)用程序?qū)?0個(gè)cookie,然后隨機(jī)接受一些cookie,假如接受5個(gè),拒絕5個(gè)。我們?cè)趫?zhí)行這個(gè)測(cè)試用例時(shí)可以通過(guò)設(shè)置瀏覽器選項(xiàng)為在寫入cookie時(shí)給出提示。在這個(gè)提示窗口中你可以接受或拒絕cookie。盡量訪問(wèn)該網(wǎng)站的主要功能,看看頁(yè)面是否會(huì)因此崩潰或者出現(xiàn)數(shù)據(jù)損壞等現(xiàn)象。
6)刪除cookie:在測(cè)試環(huán)境下,允許網(wǎng)站寫入cookie,然后關(guān)閉所有瀏覽器并手動(dòng)從網(wǎng)站中刪除所有cookie;訪問(wèn)網(wǎng)頁(yè)并且檢查頁(yè)面的行為。
7)破壞cookie:破壞一個(gè)cookie是容易的。前面我們已經(jīng)知道cookie存儲(chǔ)的位置?梢栽谟浭卤局惺謩(dòng)編輯cookie并改變一些模糊的參數(shù)的值。像改變cookie內(nèi)容,cookie的名稱或cookie的有效期限,然后查看網(wǎng)站的功能。在某些情況下?lián)p壞cookie能夠讀取其他域里面的數(shù)據(jù)。在網(wǎng)站中這是不應(yīng)該發(fā)生的。注意如果cookie是由rediff.com域?qū)懙,就不可以被其他的域訪問(wèn),比如yahoo.com,除非cookie被損壞或者有人試著攻擊cookie數(shù)據(jù)。
8)從web應(yīng)用程序頁(yè)面檢查cookie的刪除: 在測(cè)試一些“行動(dòng)跟蹤”門戶網(wǎng)站時(shí)經(jīng)常出現(xiàn)的場(chǎng)景:rediff.com域已經(jīng)向cookie中寫入數(shù)據(jù),但是被這個(gè)域下的另一個(gè)網(wǎng)頁(yè)刪除。在“行為追蹤”或“購(gòu)買行為追蹤”的網(wǎng)頁(yè)測(cè)試中,當(dāng)用戶產(chǎn)生行為或是產(chǎn)生購(gòu)買記錄的時(shí)候,需要將已經(jīng)寫入磁盤的cookie刪除,從而避免同一個(gè)cookie下產(chǎn)生多個(gè)行為或購(gòu)買記錄。適當(dāng)?shù)膭h除cookie中的內(nèi)容,檢查是否能夠追蹤到你的行為或是購(gòu)買頁(yè)面;另外檢查cookie中同一個(gè)用戶下不會(huì)存在非法的行為或購(gòu)買記錄。
9)在多個(gè)瀏覽器測(cè)試cookie:檢查你的web應(yīng)用程序頁(yè)面是否能在不同的瀏覽器上寫入cookie,并且網(wǎng)站使用這些cookie可以正常工作,這是最重要的事情。你可以在常用的瀏覽器上測(cè)試你的web應(yīng)用程序,例如不同版本的Internet explorer、Mozilla Firefox、netscape、opera等。
10)如果你的web應(yīng)用程序使用cookie維護(hù)用戶的日志狀態(tài),并且你的應(yīng)用程序使用用戶名和密碼記錄,在許多情況下,你可以直接在瀏覽器地址欄看到登錄用戶ID參數(shù)。通過(guò)改變這個(gè)參數(shù),你可以看到其他用戶的相關(guān)信息。假定如果以前的用戶ID是100,修改為 101,然后按enter鍵。當(dāng)前用戶的訪問(wèn)消息應(yīng)該顯示給用戶,但是用戶不應(yīng)該能看到其他用戶的賬戶信息。
在測(cè)試網(wǎng)站cookie的時(shí)候,這些都是一些常用的測(cè)試用例。你可以在這些測(cè)試場(chǎng)景中,通過(guò)執(zhí)行多個(gè)測(cè)試用例的組合來(lái)進(jìn)行web的cookie測(cè)試。如果你有不同的應(yīng)用場(chǎng)景,你可以在下面的評(píng)論中說(shuō)說(shuō)你的測(cè)試用例。
拓展閱讀
巧禁Cookie安全上網(wǎng)
一、IE選項(xiàng)法
1、啟動(dòng)IE;
2、在“工具”菜單上,單擊“Internet選項(xiàng)”,打開(kāi)“Internet選項(xiàng)”對(duì)話框;
3、單擊“隱私”選項(xiàng)卡,將滑塊上移到更高的隱私級(jí)別。如果移動(dòng)到最頂端則是選擇“阻止所有的Cookie”,此時(shí)系統(tǒng)將阻止所有網(wǎng)站的 Cookie,而且網(wǎng)站不能讀取計(jì)算機(jī)上已有的Cookie;
4、單擊“確定”按鈕。
二、屬性設(shè)置法
當(dāng)然,上述的“IE選項(xiàng)法”筆者是在IE6中操作完成,如果你用的是IE5,那么請(qǐng)?jiān)凇癐nternet選項(xiàng)”對(duì)話框中“安全”選項(xiàng)卡上進(jìn)行設(shè)置,在 IE4中又有所不同。而下述的“屬性設(shè)置法”把保存Cookie的文件夾設(shè)置為“只讀”屬性,從而網(wǎng)站也就無(wú)法向其中寫入Cookie信息了。該法適用于各種版本的IE.
1、啟動(dòng)“Windows資源管理器”;
2、找到保存Cookie的文件夾。使用Windows版本不同,保存Cookie的文件夾會(huì)有所不同。比如,在Windows XP中,該文件夾為“C:Documents and tings用戶名Cookies”文件夾;在Windows 98中,是“C:WindowsCookies”文件夾;
3、右鍵單擊該文件夾,再單擊“屬性”,打開(kāi)文件夾屬性對(duì)話框,選中“只讀”復(fù)選框,指定此文件夾中的文件為只讀屬性,只讀意味著文件不能被更改或意外刪除;
4、單擊“確定”按鈕。
三、注冊(cè)表法
“屬性設(shè)置法”實(shí)際上也有缺陷,就是網(wǎng)站照樣可以讀取計(jì)算機(jī)上已有的Cookie.而且有一些特殊Cookie不是以文本文件形式存在,而是保存在內(nèi)存中。這類Cookie通常是用戶在訪問(wèn)某些特殊網(wǎng)站時(shí),由系統(tǒng)自動(dòng)在內(nèi)存中生成,一旦訪問(wèn)者離開(kāi)該網(wǎng)站又自動(dòng)將Cookie從內(nèi)存中刪除。上述兩法對(duì)這些 Cookie就無(wú)能為力了,而“注冊(cè)表法”可以彌補(bǔ)這些不足。
1、單擊“開(kāi)始”菜單,再單擊“運(yùn)行”,然后在“打開(kāi)”框中鍵入“regedit”,單擊“確定”按鈕,打開(kāi)“注冊(cè)表編輯器”窗口;
2、依次展開(kāi) “HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionInternet tingsCacheSpecial PathsCookies”分支,右鍵單擊“Cookies”,然后單擊快捷菜單中的“刪除”命令,當(dāng)系統(tǒng)提示確認(rèn)刪除時(shí),請(qǐng)單擊“是”按鈕;
3、關(guān)閉“注冊(cè)表編輯器”窗口。
為了防止一些網(wǎng)站將Cookie文件放到你的計(jì)算機(jī)中,除了如上所述手動(dòng)進(jìn)行設(shè)置外,還有一個(gè)簡(jiǎn)便的方法是安裝軟件來(lái)保護(hù)你的Cookie文件。這類軟件比較多,你可以到各大軟件下載站點(diǎn)去下載。比如,Complete Cleanup Software Trail就是一款專門用來(lái)清除各種Cookie的軟件,它的功能十分強(qiáng)大,不但能讓已保存在計(jì)算機(jī)中的Cookie無(wú)處藏身,也能將用戶瀏覽網(wǎng)頁(yè)時(shí)保存在硬盤緩存中的垃圾信息清除。
【W(wǎng)eb端cookie知識(shí)介紹】相關(guān)文章:
web前端設(shè)計(jì)基礎(chǔ)知識(shí)11-12
web程序復(fù)習(xí)重點(diǎn)知識(shí)09-07
禁用Cookie功能的方法10-07
怎么禁用cookie功能08-31
如何禁用cookie功能11-03
php怎么刪除cookie08-12