SameSite Cookie导致的跨域请求session保持失效

引入原因

  • 浏览器安全性
  • 防止跨站攻击CSRF等
  • 废除第三方cookie

cookie简介

Cookie 是通过 web 浏览器从网站发送并存储在计算机上的文本字符串。 它们通常用于身份验证和个性化设置,例如,撤回有状态的信息、保留用户设置、录制浏览活动以及显示相关广告。 Cookie 始终链接到特定域,并且可以由各方安装。

Cookie 和 HTTP 请求

在引入 SameSite 限制之前,cookie 存储在浏览器中时,它们被附加到每个HTTP web 请求,并通过设置 Cookie HTTP 响应头发送到服务器。 是可预测的,这种性能可能会引入安全漏洞,如跨站点请求伪造(CSRF)攻击。 SameSite 组件通过其在 SetCookie 标头中的实现和管理减轻了暴露。

谷歌

  • Google Chrome 版本51引入了 SetCookie SameSite 规范作为可选属性。
  • 在2019年5月,Chrome 宣布推出 Cookie 的默认安全模型,采用新的 Cookie 分类系统 (规范)。
  • 在2020年2月份,谷歌发行Google Chrome 80 时引入了新的cookie值,并默认强加了cookie策略。
  • 三个值可以传递到更新的SameSite属性: Strict、宽松或无。 未指定SameSite属性的cookie 将默认为SameSite=Lax

默认严格:Set-Cookie: key=value; SameSite=Lax
全 :Set-Cookie: key=value; SameSite=Strict
none:Set-Cookie: key=value; SameSite=None; Secure,但是需要HTTPS协议

  • 在2020年4月份,由于COVID-19造成的全球异常情况,谷歌宣布时回撤SameSite Cookie标签的实施。

考虑到由于COVID-19造成的全球异常情况,我们从今天开始临时回撤SameSite Cookie标签的实施。尽管大多数网络生态系统已为这一变化做好了准备,但我们希望确保提供基本服务的网站的稳定性,这些基本服务包括银行、在线食品杂货、政府服务和医疗保健,这些内容在这段时间内为我们的日常生活提供了便利。当我们回撤执行时,组织、用户和站点应该不会受到干扰。

  • 在2020年7月14日,谷歌恢复了针对Chrome 80+启用的 SameSite Cookie实施,与Chrome 84的稳定版保持一致

Edge

  • 从版本17672开始,Windows 10Microsoft Edge 浏览器引入了 SameSite cookie 支持。
  • 开发者可以选择不将 SameSite cookie 属性添加到 SetCookie 标头,也可以使用以下两个设置之一。未实现的 SameSite 属性被视为默认状态。

SameSite=None

  • 目前,SameSite=None团队桌面客户端或更早版本的ChromeSafari不支持此方法
  • 为了网络安全和排除第三个cookie,才创造了SameSite,设置为none时,要谨慎
  • 设置none时,需要https

解决SameSite导致的跨域问题

  • 保持在同一个域名下,或者二级域名,则不存在跨域问题
  • 设置SameSite=None,启用https,则允许跨域
  • 在chrome浏览器的地址栏输入:chrome://flags/ 然后在搜索框输入:SameSite by defaul cookies 将状态改为:desabled即可
  • 使用Nginx,推荐使用
  • 解决方案,待探究和测试

参考地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坚持是一种态度

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值