「那個,請問為什麼我輸入帳號密碼登入之後,關掉瀏覽器再打開我登入的紀錄還在呢?」
這時候我們就可以拿出餅乾,跟他說─就是這塊神奇的魔法餅乾,他記錄了你來過的資訊。
Cookie 是餅乾也是為了伺服器為了記錄資料,留了一點訊息在瀏覽器中。
當一個網站想要辨識這位使用者是誰,或是延續上一個工作狀態,會產生值來儲存各使用者的狀態。
其實是 HTTP 記不得到底誰來過,所以需要餅乾的協助,我們想看一下瀏覽器的 Cookie 藏在哪裡,
來,我們看一下網址列旁邊的鎖頭,點開之後你就會看到這個網站使用幾個 Cookie。
「Cookie 安全嗎?會不會有壞人把我的餅乾偷走?」
我們知道 cookie 存在瀏覽器這裡,如果我們這些使用者關閉 cookie 的功能,這可能會造成許多網站的無法正常使用。而且 HTTP 協定是「明文」協定,我們在傳輸的過程當中, cookie 十分容易被壞人攔截、修改甚至偽造等,所以並不安全。如果可以偽造,就可以提升自己的權限(當你取得管理員的 Cookie 你就可以變成管理員)或是擁有平行的權限,也就是說我找到同事的 Cookie ,並且偽造他,那我就可以利用它的身分亂發文之類的。
我們需要其他人來協助餅乾的弱點!!!
這時候救世主 Session 出現在我們的身邊。
既然這個 Cookie 可以代表自己登入過的資訊,那我們就從瀏覽器這裡轉變成伺服器端吧,這樣就比較安全了。
Session 其實就是把資訊存在 Server 這裡, Session 會透過 Cookie 生成一個可以知道這是誰的 ID ,
那透過這個 ID ,我們就可以跟 Server 要資料,而且 Cookie 此時存的會是「加密」過的 Seesion 的 ID ,那就算瀏覽器被壞人攔截我們也不怕了。
關於 Session 的安全性
有些 CTF 會需要修改 Cookie ,在這裡介紹一個常用的擴充功能。
editthiscookie