记一次Chrome更新带来的登录Cookie问题

事件起因

环境

首先介绍下情况:公司的某个管理系统admin.xxx.com,登录接口走的api.xxx.com。

业务系统只支持http协议,所以对应的访问地址为http://admin.xxx.com,登录接口始终是https://api.xxx.com。

这样就是一个跨协议的情况了。

问题

某一天,登录系统后始终提示“你未登录,请先登录B站”,而且并不是所有人有该问题。经过一系列排查,发现唯一的区别只有Chrome浏览器版本不一致(使用部分其他浏览器也是没有问题的)。

结案

从v88升级到v89后,chrome浏览器内置的schemeful-same-site规则默认值改为启用,导致跨协议也被认定为跨站(cross-site),cookies无法传递。

临时解决方案:地址栏打开chrome://flags/#schemeful-same-site,将选项设置为Disabled。

 在Chrome 80版本,SameSite的默认值被改为Lax。

Same-Site的概念

 eTLD+1部分一致就可以称之为same-site。

scheme和eTLD+1部分一致则被称为schemeful same-site

下面是一些schemeful same-site的案例:

Origin AOrigin Bscheme same-site
https://example.com:443https://evil.com:443cross-site:域名不同
https://example.com:443https://login.example.com:443schemeful same-site:允许子域名不同
https://example.com:443http://example.com:443cross-site:协议不同
https://example.com:443https://example.com:80schemeful same-site:允许端口不同
https://example.com:443https://example.com:443schemeful same-site:完全匹配
https://example.com:443https://www.example.comschemeful same-site:允许端口不同

本文主要来自:湖中剑

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值