天天看點

關于 Chrome (谷歌浏覽器)更新到 80 後可能産生的影響以及解決方案

背景

Google 将在2020年2月4号釋出的 Chrome 80 版本(schedule:

https://www.chromestatus.com/features/schedule

)中預設屏蔽所有第三方 Cookie,即預設為所有 Cookie 加上 

SameSite=Lax

 屬性(

https://www.chromestatus.com/feature/5088147346030592

),并且拒絕非Secure的Cookie設為

SameSite=None

https://www.chromestatus.com/feature/5633521622188032

)此舉是為了從源頭屏蔽 CSRF 漏洞

對 DataV 使用者的影響

下列已知場景會在 Chrome 80 中受到影響:

1. 元件資料基于第三方登陸态的 API 請求

檢查您的元件是否使用了 API,并且 API 是否基于第三方網站的登入态傳回相關使用者資料,如果是,請往下看:

  • 使用的 API 為 HTTPS 協定:請看 方案三.1 
  • 使用的 API 為 HTTP 協定:請看 方案三

2. http 本地部署

  • 影響:Chrome 80 會攔截 http 協定下的登陸功能,導緻整個本地部署服務無法使用
  • 解決方案:方案一 或 方案二 或 方案四

如何提前知道是否對自己的屏有影響?

Chrome 中打開 chrome://flags/#same-site-by-default-cookies 和 chrome://flags/#cookies-without-same-site-must-be-secure,并設定為 Enabled,重新開機浏覽器,打開正在使用中的 DataV 大屏,檢查所有資料是否正常傳回和展示

解決方案

方案一

Chrome 中打開 chrome://flags/#same-site-by-default-cookies 和 chrome://flags/#cookies-without-same-site-must-be-secure ,設定為

Disabled

,重新開機浏覽器

方案二

降級到 Chrome 79 及以下版本,并關閉自動更新

方案三 (适用于 API)

  1. 将 API 切換為 HTTPS 協定(需要有 SSL 證書),并且檢查響應頭中的 

    Set-Cookie

    中是否包含了 

    SameSite=None

     和

    Secure

    字樣
  2. 如果沒有 HTTPS 協定的 API, 請嘗試 方案一 或 方案二

方案四

改造 http 服務,購買 SSL 證書,更新到 https 服務,并執行方案三.1

繼續閱讀