Chrome 同站策略(SameSite)问题

news2025/1/9 5:54:07

问题产生

问题复现:

A项目页面使用 iframe 引用了B项目 

B项目登录页面输入账号密码后点击登录 无法跳转

尝试解决:

  1. 在B项目修改了跳转方式 但无论是 this.$router.push 还是 window.herf 都无法实现跳转
  2. 在iframe中使用 sandbox 沙箱属性 无法
  3. 更换浏览器 发现尤其是Chrome内核浏览器  如Edge 谷歌浏览器 甚至于Safari 均无法正常跳转 但火狐浏览器可以正常访问
  4. 尝试更换旧版本(51)之前的 Chrome 浏览器  问题解决 确定是SameSite所产生问题

产生原因

在《Web 安全漏洞之 CSRF》中了解到,CSRF 的本质实际上是利用了 Cookie 会自动在请求中携带的特性,诱使用户在第三方站点发起请求的行为。

Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,可用于防止 CSRF 攻击和用户追踪。CSRF和用户跟踪的共同特点就是在访问网站A时,在给网站B发请求的时候,也会携带上网站B的cookie。而chrome 的samesite属性用来限制第三方 Cookie(第三方的理解是,URL中的网站是第一方;用户浏览器是第二方;除此之外的是第三方)。

samesite共有三个值,分别是Strict,Lax和None。其中,Strict最为严格,完全禁止第三方 Cookie,跨站点时,任何情况下都不会发送 Cookie。换言之,只有当前网页的 URL 与请求目标一致,才会带上 Cookie。Lax规则稍稍放宽,大多数情况也是不发送第三方 Cookie,但是导航到目标网址的 Get 请求除外。具体可以参照下表。这样,如果浏览器支持samesite,那么可以有效地防止CSRF攻击。但同时,也对一些应用造成了麻烦,只要是涉及到身份的网页应用,都无法在从其他网站跳转时正常地使用。

从上图可以看出,对大部分 web 应用而言,POST 表单,iframe,AJAX,Image 这四种情况从以前的跨站会发送三方 Cookie,变成了不发送。

POST表单和AJAX请求在跨站请求的时候不发送Cookie是ok的, 这样可以有效阻止跨站请求伪造攻击。

Image不发送Cookie其实影响比较小,因为大部分静态资源都会放在CDN上, 不随业务变化,可以实现强缓存。

而iframe一般都是跨站的,所以受影响相对较大。

解决方式

1.修改浏览器配置项(Chrome)

由于SameSite是从 Chrome51 版本后出现 所以 Chrome51 版本之前的用户是正常显示的 故不用操作

版本在  Chrome51 - Chrome91  之间

通过可视化图形界面在手动关停 SameSite 如图所示

把SameSite by default cookies设置为disabled 重启浏览器即可正常使用

版本在  Chrome91 - Chrome94  之间

右击桌面的Chrome(Edge同理) - 属性

在目标输入以下命令

--disable-features=SameSiteByDefaultCookies;

版本在Chrome94 以上

嗝屁凉凉寄

2.修改浏览器配置项(火狐)

地址栏输入 about:config 进入配置

再输入 network.cookie.sameSite.laxByDefault 搜索

默认应该为false   false时则正常访问  如果为true 则会产生以上问题   可双击修改测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1084087.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网页游戏的开发框架

网页游戏开发通常使用不同的开发框架和技术栈,以创建各种类型的游戏,从简单的HTML5游戏到复杂的多人在线游戏(MMO)等。以下是一些常见的网页游戏开发框架和它们的特点,希望对大家有所帮助。北京木奇移动技术有限公司&a…

英国物联网初创公司【FourJaw】完成180万英镑融资

来源:猛兽财经 作者:猛兽财经 猛兽财经获悉,总部位于英国谢菲尔德的物联网初创公司【FourJaw】今日宣布已完成180万英镑融资。 本轮融资完成后,FourJaw的总融资金额已达400万英镑,本轮融资的投资机构包括:…

华为发布LampSite X室内数字化创新解决方案,释放数字世界无限潜能

【阿联酋,迪拜,2023年10月11日】2023全球移动宽带论坛(Global MBB Forum 2022)期间,华为董事、ICT产品与解决方案总裁杨超斌重磅发布了全新一代5G室内数字化产品解决方案LampSite X系列,助力运营商打开商业…

构建精致 Chrome 插件:开箱即用的 TypeScript 模板 | 开源日报 No.51

tonsky/FiraCode Stars: 72.7k License: OFL-1.1 Fira Code 是一种免费的等宽字体,具有编程连字符。 Fira Code 提供了丰富多样的箭头和标点符号调整功能。Fira Code 支持各种不同的字符变体、风格集和其他字体特性,以满足用户个性化需求。Fira Code …

自定义pycharm的debug控件

写在前面的话 默认的 pycharm-professional-2023.2.2 的debug控件显示不全,比如 run to cursor 和 evaluate expression 是隐藏起来的,用的时候不太方便,因此需要知道如何对这些debug这些控件进行自定义显示 修改后的样子 修改按钮 修改…

实用的嵌入式编码技巧:第四部分

嵌入式工程师详细的结构模式分析甚至确定了系统将如何振动,从而避免了残酷的发射阶段引起的破坏性共振。尽管他们创建的产品可以在恶劣且经常未知的环境中工作,但他们的详细计算却描述了系统的运行方式。 想想土木工程师。今天,没有人不做数…

商家制作回收小程序有什么作用呢

商家制作回收小程序的作用主要体现在以下几个方面: 一、提升品牌形象 回收小程序是商家向外界展示自身社会责任感和环保意识的重要窗口。在当今社会,企业的环保形象日益受到消费者的关注,拥有一个专业、高效的回收小程序无疑可以让商家在消费…

想玩配音的小伙伴,赶快来试试这个款配音神器~

手机玩配音真的很方便,平时没事的时候直接打开就可以配音。而且手机上可以配音的软件都很简单,操作也不复杂,完成一个配音真的是分分钟的事。今天就给大家分享一款好玩又有趣的配音软件! 一、悦音配音,一款可以媲美真人…

uniapp 微信小程序 vue3.0+TS手写自定义封装步骤条(setup)

uniapp手写自定义步骤条&#xff08;setup&#xff09; 话不多说 先上效果图&#xff1a; setup.vue组件代码&#xff1a; <template><view class"stepBox"><viewclass"stepitem"v-for"(item, index) in stepList":key"i…

Python 之 sqrt函数浅析

一、函数介绍 Python中的sqrt( )函数。sqrt是square root的简写&#xff0c;用于求非负实数的平方根。 return sqrt(x) # x为非负实数函数定义&#xff08;位于math.py中&#xff09;&#xff1a; 二、函数使用 sqrt( )函数位于数学运算库math当中&#xff0c;使用前需要先…

latex如何对.pdf格式的图片实现裁剪

目录 问题描述&#xff1a; 问题解决&#xff1a; 问题描述&#xff1a; 在使用draw.io进行绘图&#xff0c;导出的时候不知道为什么周围会有留白&#xff0c;比如下图&#xff1a; 在导入latex的时候&#xff0c;会因为两侧的留白导致整张图片缩小。 如果直接进行裁剪.pdf&a…

TVS选型:瞬态抑制二极管选型!|深圳比创达EMC

提到TVS&#xff0c;大部分电子工程师基本都知道是用来端口防护的&#xff0c;防止端口瞬间的电压冲击造成后级电路的损坏。 一、工作原理 TVS即瞬态电压抑制器&#xff0c;又称雪崩击穿二极管。它是采用半导体工艺制成的单个PN结或多个 PN结集成的器件。TVS有单向与双向之分…

Print()函数用法实例详解

Print() 函数用于打印输出&#xff0c;是python中最常见的一个内置函数。其基本语法为 Print(value, sep’ ‘, end’\n’, filesys.stdout, flushFalse) 。因此可见&#xff0c;它主要由4个参数构成。 其中 sep (separate) 代表分隔符&#xff0c;默认为 ’ ’ 和 end ‘\n’…

vs中集成vcpkg

文章目录 安装vcpkg将vcpkg集成到vs中将vcpkg集成到项目中使用vcpkg安装boost库在项目中使用boost库 参考 VS2022 vcpkg 使用 Vcpkg包管理器的使用 安装vcpkg 从github上下载。 将vcpkg集成到vs中 命令说明vcpkg integrate install将所安装的包集成到VSvcpkg integrate rem…

10月11-12日上课内容 Ansible、

Ansible Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。比…

3.2 学生-课程数据库

思维导图&#xff1a; 3.2 学生-课程数据库 **3.2 学生-课程数据库** 本节重点&#xff1a; - 通过学生-课程数据库例子&#xff0c;探讨SQL中的数据定义、数据操纵、数据查询和数据控制语句。 - 提到学生-课程模式S-T(具体可参考3.3.1小节中例3.1)。 - 介绍三个主要的表格。…

C++ 与复合数据类型:透过类理解结构体

文章目录 参考描述结构体概念结构体与类结构体还是类&#xff1f; 默认访问级别struct 与其默认访问级别class 与其默认访问级别 参考 项目描述搜索引擎Bing、GoogleAI 大模型文心一言、通义千问、讯飞星火认知大模型、ChatGPTC Primer Plus &#xff08;第六版&#xff09;中…

做SEO要选择什么代理IP?2023最新综合指南

在 SEO 领域&#xff0c;代理IP在取得成功方面发挥着至关重要的作用。它们提供了一种隐藏您的 IP 地址并通过不同位置访问网络的方法&#xff0c;使您能够收集数据、分析竞争对手的策略并提高网站的可见性。在这篇博文中&#xff0c;我们将深入研究代理服务器的世界&#xff0c…

虚拟列表本质以及解决方式

前言 简述&#xff1a;虚拟列表是一种优化长列表渲染的技术&#xff0c;它可以在保持流畅性的同时&#xff0c;渲染大量的数据。在传统的列表渲染中&#xff0c;如果列表非常长&#xff0c;会导致渲染时间过长&#xff0c;页面卡顿&#xff0c;用户体验变得非常差。而虚拟列表…

AVL 树的初步认识与基本操作

历史 AVL 树是一种自平衡二叉搜索树&#xff0c;由托尔哈斯特罗姆在 1960 年提出并在 1962 年发表。它的名字来源于发明者的名字&#xff1a;Adelson-Velsky 和 Landis&#xff0c;他们是苏联数学家&#xff0c;于 1962 年发表了一篇论文&#xff0c;详细介绍了 AVL 树的概念和…