Chrome 80 中 Iframe 跨域傳 Cookie 的 Samesite 問題

咱們知道,經過設置Access-Control-Allow-Credentials: truexhr.withCredentials = true,能夠實現跨域傳遞Cookie. 達到保存用戶登陸態等目的。但使用不當,也會有CSRF風險。
因此,從Chrome 51開始,瀏覽器的Cookie新增長了一個SameSite屬性,用來防止CSRF攻擊和用戶追蹤。
該設置當前默認是關閉的,但在Chrome 80以後,該功能默認已開啓。
因此當你沒法使用某些網站第三方登陸功能的時候,請查看一下是否受到了該設置的影響。html

  • 對於使用者,快速解決方案:

    方案1. 打開Chrome設置,將chrome://flags/#same-site-by-default-cookies禁用,而後重啓瀏覽器。
    avatar
    方案2. 使用低版本瀏覽器,可選擇極速360chrome

  • 對於開發者,解決方案:

    方案1. 將SameSite屬性值改成None, 同時 將secure屬性設置爲
    true。且須要將後端服務域名必須使用https協議訪問。
    方案2. 因爲設置SameSite = None,有SCRF風險,因此,最佳方案是用token代替Cookie方式做驗證。後端

相關文章
相關標籤/搜索