首页 > 其他 > 详细

新版本chrome浏览器带来的跨域请求cookie丢失问题

时间:2020-11-07 19:48:31      阅读:199      评论:0      收藏:0      [点我收藏+]

新版本的chrome浏览器(80版本之后)对cookie的校验更加严格,有页面嵌套的可能会出现问题。
chrome升级到80版本之后(最坑的地方:灰度测试,即也可能存在同一版本不同人的浏览器表现不同)cookieSameSite属性默认值由None变为Lax,该问题的讨论可参考:https://github.com/google/google-api-javascript-client/issues/561

Lax模式下,以下类型请求将受影响:

请求类型

示例

正常情况

Lax

链接

<a href="..."></a>

发送 Cookie

发送 Cookie

预加载

<link rel="prerender" href="..."/>

发送 Cookie

发送 Cookie

GET 表单

<form method="GET" action="...">

发送 Cookie

发送 Cookie

POST 表单

<form method="POST" action="...">

发送 Cookie

不发送

iframe

<iframe src="..."></iframe>

发送 Cookie

不发送

AJAX

$.get("...")

发送 Cookie

不发送

Image

<img src="...">

发送 Cookie

不发送

解决方法1
下面的设置无效。
Set-Cookie: widget_session=abc123; SameSite=None
下面的设置有效。
Set-Cookie: widget_session=abc123; SameSite=None; Secure
解决方法2
两个跨域的网站部署到一起,例如
www.xxx.com/A网站
www.xxx.com/B网站
解决问题3:
谷歌浏览器里面:
chrome://flags/
SameSite by default cookies这个参数设置成disabled

新版本chrome浏览器带来的跨域请求cookie丢失问题

原文:https://www.cnblogs.com/sxhlf/p/13941328.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!