若您的網站未指定Samesite=None將可能出現無法預期的錯誤。
Samesite=Strict Samesite=LAX Samesite=None (允許跨網站存取)
例如:結帳完被登出、物流電子地圖無法將資料回寫
如何自行檢測?
開啟您的網站>Ctrl+Shift+I
如出現下圖表示
未設置
,預設為(LAX)
(請注意,在Chrome 85之前,每次加載頁面時,DevTools中都會向JavaScript控制台發送有關不兼容Cookie的消息。在Chrome 85中,這些消息已從控制台中刪除。)
SameSite=None + HTTPS:允許跨網域存取,但是若沒 HTTPS 則預設「拒絕」跨網域存取
無效:Set-Cookie: remote_session=abc123; SameSite=None
有效:Set-Cookie: remote_session=abc123; SameSite=None; Secure
setcookie('cross-site-cookie', 'name', ['samesite' => 'None', 'secure' => true]);
setcookie('cookie2','name',['samesite'=>'None','secure'=> true]);
設定 .htaccess
Header always edit Set-Cookie ^(.*)$ "$1;HttpOnly;Secure;SameSite=None"
設定 Apache httpd.conf
Header always edit Set-Cookie ^(.*)$ "$1;HttpOnly;Secure;SameSite=None"
https://www.chromium.org/updates/same-site
https://blog.chromium.org/2020/02/samesite-cookie-changes-in-february.html
https://docs.microsoft.com/zh-tw/aspnet/core/security/samesite?view=aspnetcore-3.1