公司已有的系统已经正常运行了很久,但是最近突然打不开,经过排查不是代码的问题,是操作人员更新了Google版本,Google 80以下版本中可以正常使用系统,但是更新之后却无法使用,所以判断问题原因是更新了Google浏览器版本所导致的,Google浏览器在80以上版本中不支持不安全的cookie跨域传输了。经过一番百度后,找到以下解决方案:方便快捷又不用修改代码。只需要禁用一下Google浏览器的两个功能即可。操作如下:
在google浏览器地址栏分别输入如下地址:
修改了以上之后,重新打开google浏览器就可以了,这个做法非常简单也不用修改代码,但是呢为了安全起见还是建议修改代码,以适应发展。
除了以上的方法还可以使用以下几种方式:
(1)不使用谷歌浏览器或者将谷歌浏览器降级到 Chrome 79 及以下版本,并关闭自动更新。
(2)将两个系统部署在同一台服务器,通过相同IP同源策略传送cookie。
(3)购买SSL证书,升级HTTP服务,将 API 切换为 HTTPS 协议请求,并且检查响应头中的 Set-Cookie 中是否包含了 SameSite=None 和 Secure字样。
更多信息:
Cookie 的 SameSite 属性 参见:
(1) http://www.ruanyifeng.com/blog/2019/09/cookie-samesite.html
(2)https://blog.lyz810.com/article/2017/05/samesite-cookies-explained/
Google 80版本发布更新的内容参见:
(1) https://blog.lyz810.com/article/2020/01/chrome-80-release-note/
参考资料:
(1)https://help.aliyun.com/document_detail/151711.html