Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute

前言

之前做的一个跨域调用的静态页面,反馈使用出现了问题,检查了一下发现Chorme显示这个消息:Indicate whether to send a cookie in a cross-site request by specifying its SameSite attribute
在这里插入图片描述

在网上Search了一下,是chrome 更新以后出现的问题,主要是为了防止CSRF 攻击,屏蔽了第三方cookies,具体情况的话可以看下面的两个链接

Cookies default to SameSite=Lax

Reject insecure SameSite=None cookies

警告信息中讲到一个SameSite属性,是为了限制第三方的cookies,有三个属性设置Strict、Lax、None,要详细了解的话可以看下阮一峰老师的日志,这里就不介绍了

Cookie 的 SameSite 属性


这样的话,测试了下好像使用Chromium内核的浏览器都出现了这个问题,好,那接下来看怎么去填自己遗留下来的坑

1.回退浏览器版本

这个最简单了,回退浏览器比如Chrome 把他降到79 及以下版本就可以了,不过只是应急用的
在这里插入图片描述

2.修改浏览器配置

在浏览器中输入下面的url,修改same-site-by-default-cookiescookies-without-same-site-must-be-secure的配置为Disabled,然后重启浏览器

chrome://flags/#same-site-by-default-cookies
chrome://flags/#cookies-without-same-site-must-be-secure

在这里插入图片描述
在这里插入图片描述

3.修改架构不用跨域调用

上面两种方法都是应急使用的,都不符合应对场景的话,还有个解决方法就是推到重来,不用跨域调用了还不行嘛

4.申请SSL证书

最符合套路的解决方案就是申请一个ssl证书,以https的形式来调用,设置cookies头为Set-Cookie: token={token}; SameSite=None; Secure


总结

总的来说这个问题主要是由于浏览器更新安全规范导致的,网上也能搜索到很多的解决方案,这里我就记录一下,以免遗忘

  • 19
    点赞
  • 43
    收藏
  • 打赏
    打赏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 14

打赏作者

shawn xia

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值