Cookie Expiration 和 Max-Age 屬性現已設有上限

自 Chrome 版本 M104 (2022 年 8 月) 起,Cookie 的到期日設定,不能超過 400 天以後。

Ari Chivukula
Ari Chivukula

自 Chrome 版本起,M104 (2022 年 8 月) Cookie 無法再將到期日設為未來 400 天以後。

這項變更不會影響工作階段 Cookie (未明確使用 Max-AgeExpires 設定到期日的 Cookie),因為系統會在瀏覽工作階段結束時清除這些 Cookie。

經這項變更後,Chrome 會將到期日上限設為允許的值上限:從設定 Cookie 的起算 400 天後。要求到期日超過 400 天的 Cookie 不會遭到拒絕;到期日則設為 400 天。

範例

舉例來說,假設有一個 Cookie 在 2023 年 1 月 1 日星期日設定:

Cookie 要求的到期日 未來天數 超過 400 天? 有效期
Name=Value; 到期日=2024 年 1 月 1 日 00:00:00 GMT 2024 年 1 月 1 日 365 2024 年 1 月 1 日
Name=Value; Max-Age=31536000 2024 年 1 月 1 日 365 2024 年 1 月 1 日
Name=Value; expiration=Mon, 2024 年 2 月 5 日 00:00:00 GMT 2024 年 2 月 5 日 400 2024 年 2 月 5 日
Name=Value; Max-Age=34560000 2024 年 2 月 5 日 400 2024 年 2 月 5 日
Name=Value; expiration=Tues, 2024 年 2 月 6 日 00:00:00 GMT 2024 年 2 月 6 日 401 2024 年 2 月 5 日
Name=Value; Max-Age=34646400 2024 年 2 月 6 日 401 2024 年 2 月 5 日
Name=Value; expiration=Wed, 2025 年 1 月 1 日 00:00:00 GMT 2025 年 1 月 1 日 731 2024 年 2 月 5 日
Name=Value; Max-Age=63158400 2025 年 1 月 1 日 731 2024 年 2 月 5 日

想要保留 Cookie 超過 400 天嗎?開發人員可以在使用者再次造訪網站時延長到期時間,做法是設定同名的新 Cookie。請注意,有很多原因可能會導致 Cookie 在到期日前刪除 (例如使用者可手動清除 Cookie,或超過每個網域的 Cookie 上限)。

為何要新增這項限制?

而在新增這項限制前,Cookie 可能會使千禧年日後失效。透過這項改變,我們希望在使用者期望和方便性之間取得更好的平衡。400 天縮短為 13 個月,如此一來,一年左右造訪的網站就能保留其 Cookie。

瞭解詳情

這項變更屬於草稿 Cookie 標準的一部分,詳情請參閱 Chrome 平台狀態MozillaWebKit 對 400 天的時間限制都提供正面評價,但兩者均未以書面形式導入。