Chrome无法修改cookie

Chrome(谷歌浏览器)升级到80及以上版本后,可能会导致DataV组件的API数据无法正常返回和展示,或者HTTP本地部署服务无法使用。本文介绍此类问题的产生背景及解决方案。

背景

谷歌在2020年2月4号发布的Chrome80版本(schedule)会逐渐屏蔽第三方Cookie,即默认为所有Cookie加上SameSite=Lax属性(Cookies default to SameSite=Lax),并且拒绝为不安全的Cookie设置SameSite=None属性(Reject insecure SameSite=None cookies),这样是为了从源头屏蔽跨站请求伪造CSRF(Cross Site Request Forgery)漏洞。

如何提前判断升级Chrome80版本是否对可视化应用有影响?

  1. 在Chrome中打开chrome://flags/#same-site-by-default-cookies,将SameSite by default cookies设置为Enabled
  2. 再打开chrome://flags/#cookies-without-same-site-must-be-secure,将Cookies without SameSite must be secure设置为Enabled
  3. 重启浏览器,打开正在使用的DataV可视化应用,检查所有数据是否正常返回和展示。
    • 如果数据正常返回,则升级Chrome80版本对您的可视化应用没有影响。
    • 如果数据没有正常返回,则升级Chrome80版本会对您的可视化应用产生影响,请谨慎升级。并根据以下场景进行排查和解决。

问题场景一:使用API数据源

场景描述:组件的数据源为API类型,且该API请求需要用户登录信息(cookie)才能从第三方网站获取相关的数据。

影响:组件数据无法正常返回和展示。

解决方案:判断API使用的传输协议类型为HTTPS还是HTTP。

  • 使用HTTPS协议

    检查响应头中的Set-Cookie配置是否包含了SameSite=None和Secure。如果没有包含,请在响应头中的Set-Cookie配置中添加SameSite=None和Secure。

  • 使用HTTP协议(Chrome80版本)
    1. 在Chrome中打开chrome://flags/#same-site-by-default-cookies,将SameSite by default cookies设置为Disabled
    2. 再打开chrome://flags/#cookies-without-same-site-must-be-secure,将Cookies without SameSite must be secure设置为Disabled
    3. 重启浏览器。
  • 使用HTTP协议(Chrome91及以上版本)
    1. 在Chrome中打开chrome://flags/,在页面中搜索same,将Enable removing SameSite=None cookies设置为Disabled
    2. 再打开chrome://flags/,在页面中搜索same,将Schemeful Same-Site设置为Disabled
    3. 重启浏览器。

问题场景二:使用HTTP本地部署

场景描述:使用HTTP协议访问DataV服务。

影响:Chrome80会拦截HTTP协议下的登录功能,导致本地部署服务无法使用。

解决方案:请选择以下任意一种解决方案。

  • 执行问题场景一:使用API数据源中的第二种方案(使用HTTP协议)。
  • 改造HTTP服务,购买SSL证书,将HTTP服务升级到HTTPS服务,并执行问题场景一:使用API数据源中的第一种方案(使用HTTPS协议)。
  • 将Chrome版本回退到79及以下版本,并关闭版本自动更新功能。

注册登录

问答专栏标签招聘活动

发现

使用“Bing”搜本站使用“Google”搜本站使用“百度”搜本站站内搜索

注册登录

  1. 首页
  2. 问答
  3. chrome-devtools
  4. 问答详情

15klli

  • 25

发布于 2 月 18 日


chrome版本: 98.0.4758.80

在我修改 cookie 值后,就变红了,后面又会被reset掉,我记得以前我可以轻易进行修改的
是要做什么额外的配置吗?

chrome-devtools

回复

阅读 1.6k

2 个回答

得票最新

Gomi

  • 2.2k

发布于 2 月 19 日

✓ 已被采纳

1.浏览器地址输入chrome://flags
2.搜索“Partitioned Cookies”, 设置为Enabled

3.重启浏览器

回复

不死小强

  • 1.7k

发布于 2 月 19 日

如果只是本地调试的话,那就双击取消httpOnly这个选项就行了

回复

查看全部 2 个回答

宣传栏

16241

  • 博客园
  • 首页
  • 新随笔
  • 联系
  • 订阅
  • 管理

新版Chrome不能修改cookie

打开地址:chrome://flags/,搜索Partitioned cookies,设置为enable,重启浏览器。

posted @ 2022-06-16 18:08  shellon  阅读(69)  评论(0)  编辑  收藏  举报

刷新评论刷新页面返回顶部

Copyright © 2022 shellon
Powered by .NET 6 on Kubernetes

Toplist

最新的帖子

標籤