HTTP cookie，簡稱 cookie，又稱數碼存根、「網站／瀏覽＋魔餅／魔片」等，是瀏覽網站時由網路伺服器建立並由網頁瀏覽器存放在使用者計算機或其他裝置的小文字檔案。 Cookie 使 Web 伺服器能在使用者的裝置儲存狀態資訊（如新增到線上商店購物車中的商品）或跟蹤使用者的瀏覽活動（如點選特定按鈕、登入或記錄歷史）。 歷史 cookie 一詞由網路瀏覽器程式設計師盧蒙特利創造，源自 magic cookie（1979 年就已經出現，當時指 UNIX 程式收發的資料包）。magic cookie 這詞本身來自幸運餅。 盧蒙特利在 1994 年 6 月想到這點子時正在網景工作，公司則正在為 MCI 開發電子商務應用程式。文頓瑟夫和約翰克倫辛代表 MCI 與網景討論技術，表示不希望總是由其伺服器儲存事務狀態，而要求網景將狀態儲存在使用者計算機。Cookies 便是網景提出的解決方案 Kesan Jey and Shah Rajiv Deconstructing Code SSRNcom chapter IIB Netscapes cookies Yale Journal of Law and Technology 6 277389Kristol David HTTP Cookies Standards privacy and politics ACM Transactions on Internet Technology 1 2 151198 2001 an expanded version is freely available at arXivcs0105018v1 csSE。 同年，蒙特利與約翰詹南德雷亞一起編寫了最初的網景 cookie 規範。1994 年 10 月 13 日釋出的網景導航者 09beta 版開始支援 cookie。它公開的首次使用目的是檢查網景網站的訪問者是否已經訪問過該網站。蒙特利於 1995 年申請了 cookie 技術的專利，1998 年獲批。1995 年 10 月釋出的第 2 版 Internet Explorer 也宣佈支援 cookie。 當時，cookie 並未為公眾所知，雖然預設使用者接受 cookie，網站並不會通知使用者其存在。1996 年 2 月 12 日，英國《金融時報》發表文章介紹 cookie，使其為大眾所知。其潛在的隱私問題也引起討論，1996 年和 1997 年的美國聯邦貿易委員會兩次就 cookie 舉行聽證會。 網際網路工程任務組專門成立了工作小組規範 cookie 的用法。布萊恩貝倫多夫和大衛克里斯托分別提出兩套有關 HTTP 事務狀態的替代方案。但由克里斯托本人和蒙特利領導的小組很快決定還是使用網景規範。1996 年 2 月，工作組將第三方 cookie 確定為嚴重隱私威脅。該小組制定的規範 RFC 2109 最終於 1997 年 2 月釋出，要求第三方 cookie 要麼根本不允許，要麼至少預設不啟用。 網景的 cookie 頭欄位為 SetCookie，RFC 2965 添加了 SetCookie2 頭欄位，即 RFC 2965 cookie The edbrowse documentation version 35 said Note that only Netscapestyle cookies are supported However this is the most common flavor of cookie It will probably meet your needs This paragraph was removed in later versions of the documentation further to RFC 2965s deprecation，但 SetCookie2 很少使用，終於 2011 年 4 月的 RFC 6265 中棄用，已經沒有現代瀏覽器可以識別 SetCookie2 頭欄位。 結構 Cookie 的基本結構包括 Jim Manico quoting Daniel Stenberg Real worldcookielength limits 名； 值； 各種屬性。 屬性 一塊 cookie 可能有 Domain、Path、Expires、MaxAge、Secure、HttpOnly 等多種屬性，如 HTTP10 200 OK SetCookie LSIDDQAAAKEaem_vYg Pathaccounts ExpiresWed 13 Jan 2021 222301 GMT Secure HttpOnly SetCookie HSIDAYQEVnDKrdst Domainfoocom Path ExpiresWed 13 Jan 2021 222301 GMT HttpOnly SetCookie SSIDAp4PGTEq Domainfoocom Path ExpiresWed 13 Jan 2021 222301 GMT Secure HttpOnly Domain 和 Path Domain 和 Path 屬性定義了 cookie 的範圍。它們告訴瀏覽器 cookie 屬於什麼網站。Cookies 只能設定在當前資源的頂級域及其子域上。 如果伺服器未指定 cookie 的 Domain 和 Path，則它們預設為所請求資源的域和路徑。 Expires 和 MaxAge Expires 屬性定義了瀏覽器應刪除 cookie 的時間，格式為 Wdy DD Mon YYYY HHMMSS GMT 或 Wdy DD Mon YY HHMMSS GMT（YY 大於或等於 0 並且小於等於 69）。 此外也可用 MaxAge 將 cookie 的過期時間設定為某一段時間之後（相對於瀏覽器接收 cookie 的時間而言）。但 Internet Explorer 等瀏覽器可能不支援 MaxAge。 Secure 和 HttpOnly Secure 屬性旨在將 cookie 加密，使瀏覽器僅透過安全／加密連線使用 cookie。 HttpOnly 要求瀏覽器不要透過 HTTP（和 HTTPS）以外的渠道使用 cookie。這意味著無法透過客戶端指令碼語言（尤其是 JavaScript）訪問 cookie，因此無法透過跨站點指令碼攻擊輕易竊取。 分類 會話 cookie 會話 cookie 僅在瀏覽網站時臨時儲存 Microsoft Support Description of Persistent and PerSession Cookies in Internet Explorer Article ID 223799 2007，關閉瀏覽器後會自動過期或刪除。 持久 cookie 持久 cookie 只在其建立者設定的特定日期後過期，期間一直有效。 安全 cookie 安全 cookie 只能透過加密連線傳輸（HTTPS）。它們不能透過未加密的連線傳輸（HTTP），使 cookie 不易被盜。 用途 會話管理 雖然最初引入 cookie 是為了讓使用者在瀏覽網站時記錄要購買的物品。但現在使用者購物車的內容通常儲存在伺服器的資料庫中，而不再是客戶端的 cookie 中。 當前會話 cookie 的常見用途是登入。當用戶訪問網站的登入頁面時，Web 伺服器通常會向客戶端傳送一個包含唯一會話識別符號的 cookie。當用戶成功登入時，伺服器會記住該特定會話識別符號已經過身份驗證，並授予使用者訪問其服務的許可權。 喜好設定 許多網站用 cookie 儲存使用者偏好等設定，向用戶顯示喜好內容。 跟蹤 跟蹤 cookie 用於跟蹤記錄使用者的網路瀏覽習慣，如使用者的購物習慣。 瀏覽器設定 大多數現代瀏覽器都支援 cookie 並允許使用者停用它們，以下是常見選項： 完全啟用或停用 cookie，以便它們始終被接受或始終被阻止； 使用 cookie 管理器檢視和有選擇地刪除 cookie； 徹底清除 cookie 等所有私人資料。 此外也有管理 cookie 許可權的附加元件。 安全和私隱 第三方 cookie 和隱私 網頁可能第三方服務，使用網頁很可能會遇到第三方 cookie（訪問網頁外其他伺服器的 cookie）。RFC 2109 和 RFC 2965 要求瀏覽器保護使用者隱私，預設不允許在伺服器間共享 cookie，但 RFC 6265 放寬。大多數瀏覽器只要第三方網站有合理的隱私政策申明，就預設允許第三方 cookie。 廣告是第三方 cookie 常見的使用場景，廣告公司藉此跟蹤使用者。網站應當告知使用者有第三方 cookie 存在，不向消費者披露第三方 cookie 使用情況的網站運營商可能面臨法律風險，一般網站都會在隱私或 cookie 政策說明其使用的第三方 cookie。Miyazaki Anthony D 2008 Online Privacy and the Disclosure ofcookieUse Effects on Consumer Trust and Anticipated Patronage Journal of Public Policy Marketing 23 Spring 1933 竊取 Cookie 和劫持會話 很多網站用 cookie 作為使用者的唯一識別符號，但如果網站使用 cookie 作為會話識別符號，攻擊者就可以竊取受害者的全套 cookie 來冒充其請求。 參考文獻 外部連結 Category 入侵 計算機安全 CategoryWeb 安全漏洞 Category 網路隱私 Category 計算機訪問控制