Chrome 80:Google 終於對第三方cookie出手了

Google 終於對第三方cookie出手了


Chrome 80:Google 終於對第三方cookie出手了


2019年2月4號, Chrome 80穩定版(版本號v80.0.3987.87)已正式面向Windows、macOS、Linux、Android和iOS全平臺推送,此次更新有很多的改變,但我主要關注裡面的cookie政策,這次更新的cookie政策明顯是為了滿足IETF提案《Incrementally Better Cookies》提出的兩個關鍵更改:

  • 沒有Samesite屬性的cookie將視為SameSite=Lax
  • Samesite=None的cookie必須設置為安全,意味著可以使用安全的上下文

因為原有開放的cookie政策意味著用戶容易受到CSRF跨站請求偽造和意外信息洩露的影響,如CSRF可以利用網站漏洞和和用戶未退出第三方網站進行攻擊,XSS讀取第一方cookie造成信息洩露,這些風險可以通過校驗規避一些,但為鼓勵開發者為可以提供更安全的用戶體驗,所以IETF提出該提案。

在Chrome 80中,Chrome會將沒有聲明SameSite值的cookie默認設置為SameSite=Lax;只有採用SameSite=None; Secure設置的cookie可以從外部訪問,前提是通過安全連接(即HTTPS)訪問。

跟IETFF的填建議是一一對應的,Chrome 80的cookie規則可以拆分成兩條:

  • 第一個,Cookie默認設置為SameSite=Lax,會禁止第三方cookie的使用
  • 第二個,SameSite = None拒絕不安全的的cookie,要使用第三方cookie,Chrome將要求開發人員將第三方Cookie設置為SameSite = None,並將其標記為安全,使用https的安全形式

Chrome 80 預計是在2019年2月份完成更新,Firefox和Edge也會跟進,但沒有公佈時間表。

什麼是SameSite呢?


Chrome 80:Google 終於對第三方cookie出手了

SameSite是cookie標準的一部分,用於定義cookie如何跨域發送。這是谷歌開發的一種安全機制,用來防止CSRF攻擊和用戶追蹤,none是在2018年才增加上去,目前一共有三個值:strict、lax和none,在2017年11月,Chrome、Firefox、Edge、Safari和Opera支持前兩個值,在2019年5月,谷歌公佈將未設置Samesite的,統一設置成none,但在Chrome 80,也就是2020年2月後默認是lax。

  • Strict:嚴格模式,表明這個 cookie 在任何情況下都不可能作為第三方 cookie,只有當前網頁的 URL 與請求目標一致,才會帶上 Cookie。這種情況通常用於只有少數人登錄的後臺系統。
  • Lax:寬鬆模式,僅當瀏覽器URL顯示的域名和cookie的域名匹配,才發送此有此設置的cookie,這個是chrome 80中cookie的最新默認設置,詳見上面規則第一條。
  • None:設置為none表示可以跨域發送。

Samesite對第三方cookie的做了限制,所以使用到第三方的cookie,需要根據這個要求去做調整,開發需要工作了。另外使用samesite=lax或samesite=嚴格的語法就可以防止Cookie被外部服務訪問,不用再去校驗,更方便。

自從蘋果的ITP,Firefox的ETP變得越來越嚴格,第三方cookie被排擠的節奏了,感覺要放棄它了,確實是的,Google已經宣稱在將不支持第三方cookie,但有兩年的過渡期。

總結:Chrome對第三方cookie做了更嚴格的限制,對第一方cookie沒有形象,需要主動設置Samesite的值;如果需要使用第三方cookie,那麼需要設置為none而且是Secure且通過https發送。


分享到:


相關文章: