cookie的生命周期,cookie何時創建,何時銷毀


Cookie概念

    在瀏覽某些網站時,這些網站會把一些數據存在客戶端,用於使用網站等跟蹤用戶,實現用戶自定義功能

Cookie會在客戶端存活多久呢?這就是Cookie的生命了。默認情況下,Cookie只在瀏覽器的內存中存活,也就是說,如果不設置 過期時間,則表示這個 Cookie生命周期為瀏覽器會話期間,當你關閉瀏覽器后,Cookie就會消失!

可以使用Cookie#setMaxAge(int expiry)來設置Cookie的存活時間。參數expiry表示Cookie存活的秒數。

    cookie.setMaxAge(60*60):表示cookie對象可存活1小時。就算關閉瀏覽器,就算重啟客戶端電腦,cookie也會存活1小時。因為當maxAge大於0時,瀏覽器不僅會把cookie保存在瀏覽器內存中,還會把cookie保存到硬盤上。

    cookie.setMaxAge(-1)cookiemaxAge屬性的默認值就是-1(其實只要是負數都是一個意思),表示只在瀏覽器內存中存活。一旦關閉瀏覽器窗口,那么cookie就會消失。

cookie.setMaxAge(0)cookie被作廢!表示cookie即不在內存中存活,也不在硬盤上存活,這樣的cookie設置只有一個目的,那就是覆蓋客戶端原來的這個cookie,使其作廢。

存儲在硬盤上的Cookie可以在不同的瀏覽器進程間共享,比如兩個IE窗口。而對於保存在內存的Cookie,不同的瀏覽器有不同的處理方式。

原理:

如果瀏覽器使用的是 cookie,那么所有的數據都保存在瀏覽器端,

比如你登錄以后,服務器設置了 cookie用戶名(username),那么,當你再次請求服務器的時候瀏覽器會將username一塊發送給服務器,這些變量有一定的特殊標記。

服務器會解釋為 cookie變量。

所以只要不關閉瀏覽器,那么 cookie變量便一直是有效的,所以能夠保證長時間不掉線。

如果你能夠截獲某個用戶的 cookie變量,然后偽造一個數據包發送過去,那么服務器還是認為你是合法的。所以,使用 cookie被攻擊的可能性比較大。

如果設置了的有效時間,那么它會將 cookie保存在客戶端的硬盤上,下次再訪問該網站的時候,瀏覽器先檢查有沒有 cookie,如果有的話,就讀取該 cookie,然后發送給服務器。

如果你在機器上面保存了某個論壇 cookie,有效期是一年,如果有人入侵你的機器,將你的 cookie拷走,然后放在他的瀏覽器的目錄下面,那么他登錄該網站的時候就是用你的的身份登錄的。

所以 cookie是可以偽造的。

當然,偽造的時候需要主意,直接copy cookie文件到 cookie目錄,瀏覽器是不認的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM