Chrome 80 SameSite Cookie 的影響

Chrome 51 開始,瀏覽器的 Cookie 新增加了一個SameSite屬性,用來防止 CSRF 攻擊和用戶追蹤

CSRF攻擊(Cross-site Request Forgery)簡單地說是偽造Cookie來騙特定網站「我是你的正常使用者喔」

CSRF要能成立的必要條件是,使用者已登入網站,而最簡單的場景就是,使用者登入後,單憑瀏覽器與伺服端之間的會話溝通,就確認使用者的身分無誤而進行各種操作,因而使得有意攻擊者,只要能命令瀏覽器做出想要的請求,就能實現攻擊。

再說回SameSite屬性,雖然 Chrome 51 就加入了,但目前仍只有少數的網域開發人員遵循這個推薦實作,而大量同網站的Cookie仍對外暴露,產生跨站請求偽造攻擊的威脅。

所以在2020年2月發布的 Chrome 80 決定正式強制推行這項新的 Cookie 安全模型,屆時網站未宣告 SameSite=None 且使用HTTPS連線,與 Cookie 相關的請求都會被拒絕。

簡單地說,使用 3rd Party Cookie 為 追蹤/分析/投遞的服務都將無法正常運作

而SameSite屬性值基本上分為三個等級(Strict/Lax/None)

Strict最為嚴格,完全禁止第三方 Cookie,跨網域時,任何情況下都不會發送 Cookie。
換言之,只有當前網頁的 URL 與請求目標一致,才會帶上 Cookie。

Set-Cookie: CookieName=CookieValue; SameSite=Strict;

Lax規則稍稍放寬,大多數情況也是不發送第三方 Cookie,但是導航到目標網址的 Get 請求除外。

Set-Cookie: CookieName=CookieValue; SameSite=Lax;

Chrome 預計將Lax變為默認設置。這時,網站可以選擇顯式關閉SameSite屬性,將其設為None。不過,前提是必須同時設置Secure屬性(Cookie 只能通過 HTTPS 協議發送),否則無效。

無效設置:Set-Cookie: widget_session=p123; SameSite=None

有效設置:Set-Cookie: widget_session=p123; SameSite=None; Secure

延伸閱讀:

延伸閱讀:

延伸閱讀:

我是熊~一年四季冬眠中~@_@

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store