http協議(四) HTTP協議 (七) Cookie Web安全性測試之XSS HTTP協議之緩存

http://www.cnblogs.com/fish-li/archive/2011/07/03/2096903.htmlhtml

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

最近我打算寫一個系列的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存在哪裏

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

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

以個人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是由全球資訊聯盟網 所開發的。

相關文章
相關標籤/搜索