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版本是否对可视化应用有影响?
- 在Chrome中打开
chrome://flags/#same-site-by-default-cookies
,将SameSite by default cookies设置为Enabled。 - 再打开
chrome://flags/#cookies-without-same-site-must-be-secure
,将Cookies without SameSite must be secure设置为Enabled。 - 重启浏览器,打开正在使用的DataV可视化应用,检查所有数据是否正常返回和展示。
- 如果数据正常返回,则升级Chrome80版本对您的可视化应用没有影响。
- 如果数据没有正常返回,则升级Chrome80版本会对您的可视化应用产生影响,请谨慎升级。并根据以下场景进行排查和解决。
问题场景一:使用API数据源
场景描述:组件的数据源为API类型,且该API请求需要用户登录信息(cookie)才能从第三方网站获取相关的数据。
影响:组件数据无法正常返回和展示。
解决方案:判断API使用的传输协议类型为HTTPS还是HTTP。
- 使用HTTPS协议
检查响应头中的
Set-Cookie
配置是否包含了SameSite=None
和Secure
。如果没有包含,请在响应头中的Set-Cookie
配置中添加SameSite=None
和Secure
。 - 使用HTTP协议
- 在Chrome中打开
chrome://flags/#same-site-by-default-cookies
,将SameSite by default cookies设置为Disabled。 - 再打开
chrome://flags/#cookies-without-same-site-must-be-secure
,将Cookies without SameSite must be secure设置为Disabled。 - 重启浏览器。
- 在Chrome中打开
问题场景二:使用HTTP本地部署
场景描述:使用HTTP协议访问DataV服务。
影响:Chrome80会拦截HTTP协议下的登录功能,导致本地部署服务无法使用。
解决方案:请选择以下任意一种解决方案。
- 执行问题场景一:使用API数据源中的第二种方案(使用HTTP协议)。
- 改造HTTP服务,购买SSL证书,将HTTP服务升级到HTTPS服务,并执行问题场景一:使用API数据源中的第一种方案(使用HTTPS协议)。
- 将Chrome版本回退到79及以下版本,并关闭版本自动更新功能。
在文档使用中是否遇到以下问题
更多建议
匿名提交