Cookie全接觸:定義、用途、安全及禁用方法

來源:互聯網
上載者:User
網路安全

  什麼是Cookie?

  Cookie,有時也用其複數形式Cookies,指某些網站為了辨別使用者身份、進行session跟蹤而儲存在使用者本地終端上的資料(通常經過加密)。定義於RFC2109(已廢棄),最新取代的規範是RFC2965.

  Cookie最早是網景公司的前僱員Lou Montulli在1993年3月的發明。

  Cookies就是伺服器暫存放在你的電腦裡的資料(.txt格式的文字檔),好讓伺服器用來辨認你的電腦。當你在瀏覽網站的時候,Web伺服器會先送一小小資料放在你的電腦上,Cookies 會幫你在網站上所打的文字或是一些選擇都記錄下來。當下次你再訪問同一個網站,Web伺服器會先看看有沒有它上次留下的Cookies資料,有的話,就會依據Cookie裡的內容來判斷使用者,送出特定的網頁內容給你。商家可以從cookie獲得使用者資訊,如喜歡什麼產品。

  Cookie是當你瀏覽某網站時,網站儲存在你機器上的一個小文字檔,它記錄了你的使用者ID,密碼、瀏覽過的網頁、停留的時間等資訊,當你再次來到該網站時,網站通過讀取Cookie,得知你的相關資訊,就可以做出相應的動作,如在頁面顯示歡迎你的標語,或者讓你不用輸入ID、密碼就直接登入等。

  Cookie中的內容大多數經過了加密處理,因此在我們看來只是一些毫無意義的字母數字組合,只有伺服器的CGI處理常式才知道它們真正的含義。

  Cookie總是儲存在用戶端中,按在用戶端中的儲存位置,可分為記憶體Cookie和硬碟Cookie.

  記憶體Cookie由瀏覽器維護,儲存在記憶體中,瀏覽器關閉後就消失了,其存在時間是短暫的。硬碟Cookie儲存在硬碟裡,有一個到期時間,除非使用者手工清理或到了到期時間,硬碟Cookie不會被刪除,其存在時間是長期的。所以,按存在時間,可分為非持久Cookie和持久Cookie.

  Cookie的種類

  1. Session Cookie這個類型的cookie只在會話期間內有效,即當關閉瀏覽器時就會被瀏覽器刪除。設定session cookie的辦法是:在建立cookie不設定Expires即可。

  2. Persistent Cookie持久型cookie顧名思義就是會長期在使用者會話中生效。當你設定cookie的屬性Max-Age為1個月的話,那麼在這個月裡每個相關URL的http請求中都會帶有這個cookie.所以它可以記錄很多使用者初始化或自訂化的資訊,比如什麼時候第一次登入及弱登入態等

  3. Secure cookie安全cookie是在https訪問下的cookie形態,以確保cookie在從用戶端傳遞到Server的過程中始終加密的。這樣做大大的降低的cookie內容直接暴露在駭客面前及被盜取的機率。

  4. HttpOnly Cookie

  設定成httponly的cookie只能在http(https)請求上傳遞。也就是說httponly cookie對用戶端指令碼語言(javascript)無效,從而避免了跨站攻擊時JS偷取cookie的情況。當你使用javascript在設定同樣名字的cookie時,只有原來的httponly值會傳送到伺服器。(document.cookie 無效)

  5. 第三方cookie

  則是種植在不同於瀏覽器地址欄的網域名稱下。例如:使用者訪問a.com時,在ad.google.com設定了個cookie.廣告。

  6. Super Cookie超級cookie是設定公用網域名稱首碼上的cookie.通常a.b.com的cookie可以設定在a.b.com和b.com,而不允許設定在。com上。

  7. Zombie Cookie殭屍cookie是指那些刪不掉的,刪掉會自動重建的cookie.殭屍cookie是依賴於其他的本機存放區方法,例如flash的share object,html5的local storages等,當使用者刪除cookie後,自動從其他本機存放區裡讀取出cookie的備份,並重新種植。

  Cookie 的用途

  1. 會話管理

  記錄使用者的登入狀態是cookie最常用的用途。通常web伺服器會在使用者登入成功後下發一個簽名來標記session的有效性,這樣免去了使用者多次認證和登入網站。

  記錄使用者的訪問狀態,例如導航啊,使用者的註冊流程啊

  2. 個人化資訊

  用來記憶使用者相關的資訊,以方便使用者在使用和自己相關的網站服務。例如:ptlogin會記憶上一次登入的使用者的QQ號碼,這樣在下次登入的時候會預設填寫好這個QQ號碼

  用來記憶使用者自訂的一些功能。使用者在設定自訂特徵的時候,僅僅是儲存在使用者的瀏覽器中,在下一次訪問的時候伺服器會根據使用者本地的cookie來表現使用者的設定。例如google將搜尋設定(使用語言、每頁的條數,以及開啟搜尋結果的方式等等)儲存在一個COOKIE裡。

  3. 記錄使用者的行為

  記錄使用者的點擊流和某個產品或商業行為的操作率和流失率

  Cookie的安全問題

  1.Cookie欺騙

  Cookie記錄著使用者的帳戶ID、密碼之類的資訊,如果在網上傳遞,通常使用的是MD5方法加密。這樣經過加密處理後的資訊,即使被網路上一些別有用心的人截獲,也看不懂,因為他看到的只是一些無意義的字母和數字。然而,現在遇到的問題是,截獲Cookie的人不需要知道這些字串的含義,他們只要把別人的Cookie向伺服器提交,並且能夠通過驗證,他們就可以冒充受害人的身份,登陸網站。這種方法叫做Cookie欺騙。

  Cookie欺騙實現的前提條件是伺服器的驗證程式存在漏洞,並且冒充者要獲得被冒充的人的Cookie資訊。目前網站的驗證程式要排除所有非法登入是非常困難的,例如,編寫驗證程式使用的語言可能存在漏洞。而且要獲得別人Cookie是很容易的,用支援Cookie的語言編寫一小段代碼就可以實現(具體方法見三),只要把這段代碼放到網路裡,那麼所有人的Cookie都能夠被收集。如果一個論壇允許HTML代碼或者允許使用Flash標籤就可以利用這些技術收集Cookie的代碼放到論壇裡,然後給文章取一個迷人的主題,寫上有趣的內容,很快就可以收集到大量的Cookie.在論壇上,有許多人的密碼就被這種方法盜去的。至於如何防範,目前還沒有特效藥,我們也只能使用通常的防護方法,不要在論壇裡使用重要的密碼,也不要使用IE自動儲存密碼的功能,以及盡量不登陸不瞭解底細的網站。

  2.Flash的代碼隱患

  Flash中有一個getURL()函數,Flash可以利用這個函數自動開啟指定的網頁。因此它可能把你引向一個包含惡意代碼的網站。打個比方,當你在自己電腦上欣賞精美的Flash動畫時,動畫幀裡的代碼可能已經悄悄地連上網,並開啟了一個極小的包含有特殊代碼的頁面。這個頁面可以收集你的Cookie、也可以做一些其他的事情,比如在你的機器上種植木馬甚至格式化你的硬碟等等。對於Flash的這種行為,網站是無法禁止的,因為這是Flash檔案的內部行為。我們所能做到的,如果是在本地瀏覽盡量開啟防火牆,如果防火牆提示的向外發送的資料包並不為你知悉,最好禁止。如果是在Internet上欣賞,最好找一些知名的大網站。

  禁用瀏覽器cookie的辦法

  使用者可以改變瀏覽器的設定,以使用或者禁用Cookies.

  微軟 Internet Explorer

  工具 > Internet選項 > 隱私頁調節滑塊或者點擊"進階",進行設定。

  Mozilla Firefox

  工具> 選項> 隱私(註: 在Linux版本中,是如下操作:編輯 > 喜好設定 > 隱私 , 而Mac則是:Firefox > 屬性 > 隱私)

  查看源網頁設定Cookies選項設定阻止/允許的各個域內Cookie查看Cookies管理視窗,檢查現存Cookie資訊,選擇刪除或者阻止它們

  蘋果電腦 Safari

  Safari > 預置 > 安全性標籤選擇以下的選項總是

  接受 Cookies永不 接受 Cookies

  刪除flash cookie的辦法:

  1.點擊作業系統的"開始"按鈕,再點擊"控制台".

  2.在開啟的"控制台"中點擊 "Flash Player".

  3.在開啟的"flash player 設定管理員"中選擇"儲存",再點擊"全部刪除"按鈕。

  4.最後選中"刪除所有網站資料和設定",然後點擊"刪除資料"按鈕就即可。

  接受 Cookies

  僅從您瀏覽的網站 (例如,不接受來自其它網站的廣告) 預設的選項。

  您可以顯示所有駐留在您瀏覽器中的 cookies,也可隨時將它們之一刪除。

  NETSCAPE  "PREFERENCE\ADVANCED\COOKIES",在出現的視窗中有三個選項,選擇"DISABLECOOKIES"即可關閉COOKIE.在IE中,選擇"查看"/"INTERNET選項"/"進階",在隨後出現的視窗中找到"COOKIES"一項,選擇"禁止所有的COOKIE 使用"可關閉COOKIE.

  Konqueror如果沒有設定cookie列表,請記住在網域名稱前面加入".",例如。,否則百度將不會讀取cookie(針對KDE 3.3)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.