HTTP協議 (七) Cookie

本文轉載自:http://www.cnblogs.com/TankXiao/archive/2013/04/15/2848906.html

Cookie是HTTP協議中非常重要的東西, 之前拜讀了Fish Li 寫的【細說Cookie】, 讓我學到了很多東西。Fish的這篇文章寫得太經典了。 所以我這篇文章就沒有太多內容了。 

最近我打算寫一個系列的HTTP文章,我站在HTTP協議的角度, 說說我對Cookie的理解。

 

閱讀目錄

  1. Cookie是什麼,有什麼用,爲什麼要用到Cookie
  2. Cookie的分類
  3. Cookie存在哪裏
  4. 使用和禁用Cookie
  5. Fiddler查看HTTP中的Cookie
  6. 網站自動登陸的原理
  7. 截獲Cookie,冒充別人身份
  8. Cookie和文件緩存的區別
  9. Cookie泄露隱私
  10. P3P協議

 

Cookie是什麼,有什麼用,爲什麼要用到Cookie

請看Fish Li 寫的【細說Cookie】

 

Cookie的分類

可以大致把Cookie分爲2類: 回話cookie和持久cookie

會話cookie: 是一種臨時的cookie,它記錄了用戶訪問站點時的設置和偏好,關閉瀏覽器,會話cookie就被刪除了

持久cookie: 存儲在硬盤上,(不管瀏覽器退出,或者電腦重啓,持久cookie都存在), 持久cookie有過期時間

 

Cookie存在哪裏

Cookie是存在硬盤上,  IE存cookie的地方和Firefox存cookie的地方不一樣。  不同的操作系統也可能存cookie的地方不一樣。

不同的瀏覽器會在各自的獨立空間存放Cookie, 互不干涉

以我的windows7, IE8爲例,  cookie存在這: C:\Users\xiaoj\AppData\Local\Microsoft\Windows\Temporary Internet Files

注意: 緩存文件和cookie文件,是存在一起的, 都在這個目錄下。

你也可以這樣找, 打開IE,點擊Tools->Internet Options->General Tab下的->Browsing history下的Setting按鈕,彈出的對話框中點擊View files.

 

不同的網站會有不同的cookie文件

 

使用和禁用Cookie

IE:   工具->Internet 選項 -> 隱私

 

Fiddler查看HTTP中的Cookie

瀏覽器把cookie通過HTTP Request 中的“Cookie: header”發送給Web服務器

Web服務器通過HTTP Response中的"Set-Cookie: header"把cookie發送給瀏覽器

使用Fiddler可以清楚地看到cookie在HTTP中傳遞。 Fiddler工具中可以清晰的看到Http Request 中的Cookie, 和Http Response中的cookie  

實例: 啓動Fiddler,  啓動瀏覽器訪問一些購物網站,就可以看到。

 

 

網站自動登陸的原理

我們以”博客園自動登陸“的例子,來說明cookie是如何傳遞的。

大家知道博客園是可以自動登陸的。 如下圖,這個是什麼原理呢?

假如我已經在登陸頁面輸入了用戶名,密碼,選擇了保存密碼,登陸。

這時候,其實在你的機器上保存好了登陸的cookie, 不信你可以按照上節介紹方法去你的電腦上找下博客園的cookie)  

當我下次訪問博客園流程如下。

1. 用戶打開IE瀏覽器,在地址欄上輸入www.cnblogs.com.

2. IE首先會在硬盤中查找關於cnblogs.com的cookie. 然後把cookie放到HTTP Request中,再把Request發給Web服務器。

3. Web服務器返回博客園首頁(你會看到你已經登陸了)。

 

截獲Cookie,冒充別人身份

通過上面這個例子,可以看到cookie是很重要的,識別是否是登陸用戶,就是通過cookie。  假如截獲了別人的cookie是否可以冒充他人的身份登陸呢?  當然可以, 這就是一種黑客技術叫Cookie欺騙。

利用Cookie 欺騙, 不需要知道用戶名密碼。就可以直接登錄,使用別人的賬戶做壞事。

我知道有兩種方法可以截獲他人的cookie,

1. 通過XSS腳步攻擊, 獲取他人的cookie. 具體原理可以看 [Web安全性測試之XSS]

2. 想辦法獲取別人電腦上保存的cookie文件(這個比較難)

 

拿到cookie後,就可以冒充別人的身份了。 這個過程我就不演示了。

Cookie和文件緩存的區別

很多人會把cookie和文件緩存弄混淆, 這兩個完全是不一樣的東西。唯一的相同之處可能是它們倆都存在硬盤上,而且是存在同一個文件夾下。

關於HTTP緩存請看這 【HTTP協議之緩存

我們在IE中可以選擇分別刪除Cookie和緩存文件

 

 

Cookie 泄露隱私

2013年央視的315晚會上, 曝光了很多不法公司利用Cookie跟蹤並採集用戶的個人信息,並轉賣給網絡廣告商,形成了一條竊取用戶信息的灰色產業鏈。從而實現廣告準確投放。嚴重干擾了用戶的正常網絡應用,侵害了個人的隱私和利益。

我經常就在門戶網站上發現廣告位上顯示的是我在電商網站上流量過的商品。  這就是我的cookie被泄露了。

 

目前在歐洲, 已經對Cookie立法, 如果網站需要保存用戶的cookie, 必須彈出一個對話框,要用戶確認後才能保存Cookie.

 

P3P協議

從上面看來, Cookie 是一個比較容易泄露用戶隱私和危險的東西。  有沒有辦法保護個人用戶隱私呢?    那就是P3P協議

P3P是一種被稱爲個人隱私安全平臺項目(the Platform for Privacy Preferences)的標準,能夠保護在線隱私權,使Internet衝浪者可以選擇在瀏覽網頁時,是否被第三方收集並利用自己的個人信息。如果一個 站點不遵守P3P標準的話,那麼有關它的Cookies將被自動拒絕,並且P3P還能夠自動識破多種Cookies的嵌入方式。p3p是由全球資訊聯盟網 所開發的。

 

發佈了10 篇原創文章 · 獲贊 114 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章