chrome更新到80以上版本后,带来的跨域请求cookie丢失问题
chrome更新到80以上版本后,带来的跨域请求cookie丢失问题
cookie的SameSite属性默认值由None变为Lax
此时可以尝试显式声明 Cookie 的SameSite属性为None,并设置Secure (不然无效)。
Cookie 的SameSite属性用来限制第三方 Cookie,从而减少安全风险。
更多参考:谷歌浏览器 Cookie 的 SameSite 属性 (转)
它可以设置三个值。
Strict
Lax
None
None
Chrome 计划将Lax变为默认设置(80版本已实施)。这时,网站可以选择显式关闭SameSite属性,将其设为None。不过,前提是必须同时设置Secure属性(Cookie 只能通过 HTTPS 协议发送),否则无效。
下面的设置无效。
Set-Cookie: widget_session=abc123; SameSite=None
下面的设置有效。
Set-Cookie: widget_session=abc123; SameSite=None; Secure
推荐解决方案:
1.针对正式运行引用,拒绝使用跨域的cookie
2.针对测试,使用,提供方案如下:
第一步:
打开chrome 输入 chrome://flags/ 搜索 SameSite by default cookies
找到SameSite by default cookies和Cookies without SameSite must be secure
将上面两项设置为 Disable
第二步:
底部relaunch 重新加载下即可
转自CSDN博主「小熊代码加」的原创文章
原文链接:https://blog.csdn.net/qq_36648555/article/details/109068482
但是chrome升级91版本后Chromium直接把选项SameSite by default cookies和Cookies without SameSite must be secure 给关了而且设置成默认开启, 那就没办法在flag里设置了.
但是文中还写了"In Chrome 94, the command-line flag
–disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure
will be removed",
也就是说这个SameSiteByDefaultCookies和CookiesWithoutSameSiteMustBeSecure还没有被移除,
但是这个所谓的command-line flag是个什么东西呢?
这个command-line flag是只在启动Choromium时所带的参数, 在windows中可以通过修改应用的快捷方式目标属性来给启动的应用加上参数.
Chromium支持的command-line flag, 具体操作过程如下:
在右击Chrome/Edge的快捷方式, 点击"属性".
在"目标(Target)"属性中末尾加上
--flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end
Mac
在终端中执行命令
open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/nantian/Documents/MyChromeDevUserData --flag-switches-begin --disable-features=SameSiteByDefaultCookies,CookiesWithoutSameSiteMustBeSecure --flag-switches-end
然后重启浏览器就可以了. 但是这种办法也不是长久之计,据说94版本之后这个方法也不可以了,按照官方的说法是因为如果任由开发者禁用这两个选项, 开发者就会变成容易被攻击的目标. 因此为了保护开发者, Chromium选择逐渐关闭这个通道.
转自 https://gadzan.com/chrome-edge-91hou
上述方法后来都不好用了,最终解决方式:
cmd找到chrome安装的位置,然后运行:chrome.exe --disable-web-security --user-data-dir=C:\MyChromeDevUserData
chrome更新到80以上版本后,带来的跨域请求cookie丢失问题相关推荐
- 前后端分离后产生的跨域问题sessionid丢失,cookies无法写入等
文章目录 前言 一.会话机制 1. 何为一次会话,会话从什么时候开始,从什么时候结束? 2.cookies如何保持会话,它的工作流程? 3.session原理分析: 实例记录sessionid变化(前 ...
- ajax 请求_前端后分离Ajax跨域请求保证Session一致
JAVA码牛牛,程序员学习指南 前后端分离的项目,使用Ajax请求一般都出现跨域的问题. 跨域的时候所创建的session是不会被浏览器保存下来的.所以每次进行跨域请求时,服务器都认为不是同一个浏览器 ...
- RN Error: 无法获取此包的编译时间戳。请更新react-native-update到最新版本后重新打包上传。
老项目:RN 0.44.0 react-native-update 4.0.6 注意:如果网不行那得开4G或者5G 之前热更新的时候遇到这样的问题 请问如何进行操作 : edz$ pushy uplo ...
- Windows 11 - 打开操作安全中心提示 “需要使用新应用以打开此 Windowsdefender 链接“ 解决方案(电脑更新了 Win11 系统版本后,想关闭病毒防护盾牌的时候提示打不开)
前言 注意:此问题出现在 Windows 11 系统 上,其他系统可作为参考. 当您点击任务栏上 此图标,想要关闭安全中心防护设置时, 出现了如下图所示问题,本文可以快速帮您解决: 第一步 搜索 Po ...
- vue加跨域代理静态文件404_解决vue本地环境跨域请求正常,版本打包后跨域代理不起作用,请求不到数据的方法——针对vue2.0...
问题:在本地使用了proxyTable代理可以正常跨域请求后台数据,打包上传后就无法获得后台的json文件.查看了相关资料可以用nginx进行解决.还可以使用命名环境变量,请求的时候进行判断,话不多说 ...
- Chrome设置允许跨域请求
项目开发过程中,跨域问题再所难免,解决跨域的方法也很多.最常用的方法莫过于配置Nginx解决跨域(自行百度Nginx跨域设置).但是作为开发环境,临时调试一些东西,最快的方法是设置Chrome允许跨域 ...
- 谷歌插件开发ajax请求,Chrome扩展开发,跨域请求API
起因 这次问题是从Btools更换获取数据方式开始的,因为B站收藏夹在前台页面返回的数据中删除了失效视频的封面和标题,导致原来的程序无法获取视频信息. 于是我就想如果请求收藏夹的API,是否可以获取这 ...
- Java - 探究前后分离带来的跨域问题
文章目录 为什么会产生跨域问题 同源策略 (Same-origin policy) 解决方案 服务端解决方案 简单请求 复杂请求 测试 简单请求测试 复杂请求测试 代理服务器,反向代理接口请求 jso ...
- android ajax 跨域更新本地html,本地webapp是怎么解决跨域问题的?
像ionic的cli,都可以把一个ionic的webapp打包成本地的,那这样的话是如何解决跨域问题的? 在PC上,我直接访问连接获取数据,代码如下.(抄自W3School) function loa ...
- Chrome 跨域 请求不携带cookie
一个月没动的项目,今天突然需要优化一个功能,项目启动,美滋滋的 localhost:8082访问前端页面,登录成功, 访问数据页面,报未登录 一脸懵逼,一个月前好好的项目,突然就出问题了,查看下请求发 ...
最新文章
- mysql启动、关闭与登录
- 案例驱动python编程入门-python ddt数据驱动实例代码分享
- c# winForm DotNetBar控件之SuperGridControl
- 523. Continuous Subarray Sum
- OpenCASCADE绘制测试线束:布尔运算命令之设置选项的操作
- NFS搭建openfoam
- 漫游Kafka设计篇之Producer和Consumer
- Java-分析类初始化
- TensorFlow:卷积神经网络
- Qt之QSS:带CheckBox的QGroupBox及其样式设计
- Linux的vim编辑器常用命令
- orbSLAM2 之 追踪参考关键帧
- java docx4j 目录,1、带你一起拥有docx4j
- java 营业执照验证_基于Java的营业执照识别示例代码-六派数据
- 井字棋游戏案例C++语言
- 【非原创】PHPMywind调用
- DexGuard 与 ProGuard区别
- java列名无效_java中的列名无效
- 传统企业如何实现生产制造信息化?
- unity导入FBX模型