首页 > 编程知识 正文

cookie跨域cors,谷歌浏览器跳转不了

时间:2023-05-03 15:19:17 阅读:163988 作者:4102

问题恢复是通过cas单点登录进入系统,在一个系统中嵌入第三方系统的页面,在第三方系统中也配置了cas。 进入某个系统并跳转到登录页,嵌入iframe的第三方系统将再次进入登录页。

初步分析表明,该系统在iframe中嵌入了第三方系统页面,可以复制iframe中的链接供单独访问,消除了第三方系统的问题。 此外,将此链接的iframe放入新的html文件将无法正常访问,从而消除当前系统的iframe加载问题。 发现了问题。 再次在火狐浏览器中打开刚创建的html文件即可正常访问。 最后的定位是浏览器兼容性问题,当前浏览器: Google Chrome,85.0.4183.102版(正式版本) 64位)。

打开浏览器控制台时,您会看到接口请求有500个错误。 控制台将显示以下提示(indicatewhetheracookieisintendedtobesetinacross-sitecontextbyspecifyingitssamesiteattribute )。

原因分析谷歌在2020年2月4日发布的Chrome 80版本(schedule:https://www.chrome status.com/features/schedule )中查找第三方Cookie 默认情况下,将SameSite=Lax属性(https://www.chrome status.com/feature/5088147346030592 )添加到所有Cookie中,而非secure cookie是samesite

SameSite的作用是通过防止在域之间发送cookie来防止CSRF攻击和用户跟踪。 这是为了从源中屏蔽CSRF漏洞。

有关SameSite属性的介绍,请参阅落后丸子的《Cookie 的 SameSite 属性》。

在上述问题中,当前系统访问第三方系统时,带走了一些cookie,并通过该SameSite机制进行了监听。

对于可能受Chrome 80影响场景,以下组件数据基于第三方网站的登录状态返回相关用户数据的API可以在HTTP本地部署解决方案Chrome浏览器中打开新的标签

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

然后,如上图所示,将两个配置都设置为Disabled

不使用谷歌浏览器,或者将谷歌浏览器降级到Chrome 79或更高版本,然后关闭自动更新。

将两个系统部署到同一台服务器上,并使用相同的IP同源策略发送cookie。

购买SSL证书,升级HTTP服务,将API切换为HTTPS协议请求,并验证响应标头中的Set-Cookie是否包含SameSite=None和Secure字符。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。