chrome 80版本升級后(谷歌瀏覽器目前會自動更新升級),為了防止跨域攻擊,出於安全考慮,增加了默認屬性“sameSite=Lax”,不發送(即:iframe內不允許寫入cookie)第三方Cookie。
我這邊瀏覽器版本:
該屬性sameSite有3個屬性值,默認狀態Lax下,不同的請求類型,會做不同的限制。
處理方式(3種方式):
1. 手動修改chrome谷歌瀏覽器配置
瀏覽器地址欄:chrome://flags/#site-isolation-trial-opt-out
彈出窗口,搜索:samesite
將三個選項全部禁用,退出刷新(點擊Relauch瀏覽器會自動重啟)。
2. 方式二:修改web服務,請求類型為https請求;后台響應增加如下屬性 SameSite=None,注意HttpOnly 和 Secure參數都要攜帶。
response.headers['Set-Cookie'] = "HttpOnly;Secure;SameSite=None”
# 額外補充,后台服務首先要允許跨域訪問
response.headers['Access-Control-Allow-Credentials'] = "true"
3. 方式三:利用Nginx反向代理,配置同域origin(同源)
這里需要補充說明下,經過測試,一般瀏覽器的跨域定義:(1)域名不同 (2)端口不同 (3)請求協議不同,
對於瀏覽器跨域記錄cookie這塊,域名只限制一級域名,對於二級域名是未做限制的;另外只要主域名相同,端口是否攜帶,是不做限制的,個人測試,歡迎評論區交流。
參考:https://www.cnblogs.com/gxp69/p/12565927.html