天天看點

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

writer      :bysocket(泥沙磚瓦漿木匠) 

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

這就是因為浏覽器cookie太大,導緻請求時,請求頭域過大造成發送失敗。下面咱們就了解了解cookie。按着以前的思路圖文并茂哈,沒圖說個xx。

首先從http說起,cookie是http協定中那部分呢?

cookie是什麼?

自問自答:cookie是請求頭域和響應頭域的字段。簡單地說,就是伴随請求和響應的一組鍵值對的文本,小文本。是以稱之為”cookie“餅幹。cookie的生命來源于伺服器。首先是用戶端請求服務端,此時請求為第一次,無cookie參數。這時候,服務端setcookie發送給用戶端。記住,cookie來源自服務端。

cookie有什麼用呢?

又自問自答:cookie來源自服務端,當然服務于客戶。就像你我的會話,文字是在我們之間傳遞的。是以cookie用于服務端和用戶端的會話。因為http協定是無狀态的,cookie就是維持會話,說白了就是傳遞資料的額外媒介。

下面我們通路百度位址。

① 産生于服務端的response,在響應頭域:

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

② 請求頭域是這樣的:(可以在cookie tab頁發現,和響應有一樣的)

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

下面泥瓦匠詳細介紹其cookie在 請求和響應 的傳輸過程。

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

直接上圖,一一詳細解釋。順便寫個cookieservlet,模拟一下cookie的一生。代碼如下:

代碼 new cookie("cookiename", "cookievalue"); 可以看出服務端産生一個新的鍵值對cookie,并且設定,說明第一次請求時,請求的請求頭域cookie是沒有的。下面沒有cookiename=cookievalue 的cookie值。如圖:

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

代碼中 httpservletresponse.addcookie(cookie); 這樣響應就加入了剛剛那個鍵值對cookie。怎麼傳到浏覽器(用戶端)呢? 同樣f12下,

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

從圖中可得到,cookie是通過http的響應頭域發送至浏覽器。每個cookie的set,都有一個對應set-cookie的頭。還有其中的時間代表cookie的存活時間,httponly可是此cookie隻讀模式。

直接可以打開ie的internet選項:

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

如圖,那個位置檔案就是我們cookie存的地方。既然在哪裡,泥瓦匠就去找到它。

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

打開看看,其内容就是:存放着cookie資訊和url資訊及一些關于時間的。

這樣就完全搞懂了cookie如何寫入浏覽器。

這樣,同樣的url再次通路時,f12下:

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

不多解釋,看圖。

服務端這時呢?隻要簡單的 getcookies() 就可以擷取cookie清單了。如圖,服務端控制台列印如下:

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

泥瓦匠記憶小抄:cookie傳輸小結

① 用戶端通路,無服務端寫入的cookie

② 服務端的cookie寫入浏覽器

③ 浏覽器解析cookie,儲存至浏覽器檔案

④ 用戶端通路,有服務端寫入的cookie

⑤ 伺服器擷取

cookie沒有病毒那麼危險,但包含敏感資訊。比如最常見的記住密碼,或者一些使用者經常浏覽的網頁資料。如圖:

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

全名:cross site script,中文名:跨站腳本攻擊。顧名思義,是指“html注入”纂改了網頁,插入惡意的腳本,進而在使用者用浏覽網頁的時候,控制使用者浏覽器的一種攻擊。一般攻擊的套路如圖所示:

JavaEE 要懂的小事:二、圖解 Cookie(小甜餅)一、概述二、詳細介紹Cookie 傳輸過程④ 用戶端通路,有服務端寫入的Cookie。四、談Cookie的作用到XSS(跨站點腳本攻擊)五、總結

回顧全文,cookie是http協定中的一種會話機制。也明白下面兩個問題就好了

1、what 什麼是cookie 2、how cookie怎麼用,幹嘛用