cookies 不設置過期時間的話,默認生存期限就到關閉瀏覽器為止。
有兩種存儲類型的Cookie:
- 會話性
- Expires屬性缺省時,為會話性Cookie,僅保存在客戶端內存中,並在用戶關閉瀏覽器時失效。
- 持久性
- 持久性Cookie會保存在用戶的硬盤中,直至生存期到或用戶直接在網頁中單擊“注銷”等按鈕結束會話時才會失效 。
Cookie文本數據組成:
- Name/Value:設置Cookie的名稱及相對應的值,對於認證Cookie,Value值包括Web服務器所提供的訪問令牌 。
- Path屬性:定義了Web站點上可以訪問該Cookie的目錄。
- Domain屬性:指定了可以訪問該 Cookie 的 Web 站點或域。Cookie 機制並未遵循嚴格的同源策略,允許一個子域可以設置或獲取其父域的 Cookie。當需要實現單點登錄方案時,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻擊的危險。比如攻擊者可以借此發動會話定置攻擊。因而,瀏覽器禁止在 Domain 屬性中設置.org、.com 等通用頂級域名、以及在國家及地區頂級域下注冊的二級域名,以減小攻擊發生的范圍 。
- Secure屬性:指定是否使用HTTPS安全協議發送Cookie。使用HTTPS安全協議,可以保護Cookie在瀏覽器和Web服務器間的傳輸過程中不被竊取和篡改。該方法也可用於Web站點的身份鑒別,即在HTTPS的連接建立階段,瀏覽器會檢查Web網站的SSL證書的有效性。
- HTTPOnly 屬性 :用於防止客戶端腳本通過document.cookie屬性訪問Cookie,有助於保護Cookie不被跨站腳本攻擊竊取或篡改。但是,HTTPOnly的應用仍存在局限性,一些瀏覽器可以阻止客戶端腳本對Cookie的讀操作,但允許寫操作;此外大多數瀏覽器仍允許通過XMLHTTP對象讀取HTTP響應中的Set-Cookie頭 。
