最近一周,应该有不少朋友在逛论坛的时候遇到了上传图片消失,刷新网页后变成未登录状态的情况。还有一些朋友可能会遇到跳转第三方支付平台时出错,以上这些情况都是Chrome近期的一项调整引发的连锁反应。
8月12日起,谷歌调整了一项与Cookie有关的策略,为加强对CSRF跨站请求伪造攻击的保护,不再支持使用SameSite设置为None且没有Secure属性的cookie。
简单来说,就是当网站的Cookie设计和谷歌当前的安全要求不一致的情况下,Chrome会直接移除该cookie,导致Discuz论坛登陆状态丢失,或者跳转第三方支付平台的过程失败。
其实这已经不是谷歌第一次尝试调整SameSite限制了,早在今年4月份谷歌就短暂试水过一次,当时PCEVA评测室小编就中招过一次。考虑到影响面太广,谷歌后来又撤销了更改,一直推迟到8月12日才正式全面应用该策略。
目前所有Chrome 80版本以上的浏览器全部会受到影响,当然由于众所周知的原因,谷歌的这项改变落实到国内可能会有些延迟。已经受影响的小伙伴们有三个选择:一是临时更换微软Edge浏览器(不排除后期微软跟进谷歌的调整);二是卸载新版Chrome,找老版本离线安装包安装;三是通过Chrome://flags选项强制关闭谷歌新增的限制。
以Chrome 84正式版为例,在地址栏中输入Chrome://flags回车,在搜索栏中输入SameSite回车,在下方出现的四个选项全部从默认的Default修改为Disabled,然后点击页面右下方出现的Relaunch按钮重启浏览器使设定生效。
上面的方法只能临时解决问题,从过去的经历来看,只要是谷歌下决定的更改,迟早会固化到chrome://flags里也无法修改。作为普通网友我们的任务已经完成,接下来该程序员们忙活了:修改网站代码以符合谷歌的安全要求。