-
后端已经解决跨域问题,但是还是无法携带cookie,浏览器也不会设置cookie
-
关键词:SameSite,谷歌新添加的属性,放在set-cookie里,如果无法跨域后面会有⚠️
-
GET请求成功,POST请求失败,内容如下
请求类型 示例 正常情况 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 不发送
设置了Strict
或Lax
以后,基本就杜绝了 CSRF 攻击。当然,前提是用户浏览器支持 SameSite 属性。
-
HTTPS请求能携带cookie,HTTP请求无法成功,没错是谷歌浏览器限制的
-
解决方案:chrome地址栏输入 chrome://flags/
找到”SameSite by default cookies“,修改为disable,即可关闭浏览器限制
参考地址:(https://web.dev/samesite-cookies-explained)[https://web.dev/samesite-cookies-explained]
注意:本文归作者所有,未经作者允许,不得转载