LMLPHP后院

新版本 Chrome 浏览器 POST 请求不携带 Cookie 问题技术

maybe yes 发表于 2021-04-08 10:31

真的很愤怒,真的,为什么很多人都转型做 APP 了,就是这帮浏览器厂商和 WEB 协议的设定者没有节操所致,这个东西能随便改吗?真的是傻逼行为,它以为自己这样随便改可以带来安全,殊不知自己啥都不懂,这样胡乱改规则的都是作死的节奏,一看就是不懂技术的,一个不懂技术,不懂开发者的上级软件乱来,真的让人想狂揍他一顿,Chrome 可以去死了。

我最近发现一些功能出问题了,然后也实在没有时间去管这个事情,对 Chrome 的体验真的很讨厌,老是动不动弹出一个东西出来,这个 Bug 找了一段时间,最后发现是 POST 数据没有传递 Cookie 所致。这个胡乱更改规则的行为真的恼人,估计市面上的绝大多数网站都被它坑了,Chrome 总是打着安全的旗号乱来,其实你完全不用管安全问题,安全问题人家自己会解决。之前对于浏览器老是动不动就胡乱提示不安全的问题也实在让人反感,但这个是正确的。这次的规则修改真的大错特错了,让无数开发者讨厌至极。

摘:

版本的 Chrome 浏览器(80版本之后)对 Cookie 的校验更加严格,有页面嵌套的可能会出现问题。chrome 升级到 80 版本之后 (最坑的地方:灰度测试,即也可能存在同一版本不同人的浏览器表现不同),Cookie 的 SameSite 属性默认值由 None变为 Lax,该问题的讨论可参考:https://github.com/google/google-api-javascript-client/issues/561。在 Lax 模式下,以下类型请求将受影响:

请求类型    示例    正常情况    Lax
链接    <a href="..."></a>    发送 Cookie    发送 Cookie
预加载    <link rel="prerender" href="..."/>    发送 Cookie    发送 Cookie
GET表单    <form method="GET" action="...">    发送 Cookie    发送 Cookie
POST表单    <form method="POST" action="...">    发送 Cookie    不发送
iframe    <iframe src="..."></iframe>    发送 Cookie    不发送
AJAX    $.get("...")    发送 Cookie    不发送
Image    <img src="...">    发送 Cookie    不发送

真的是作死啊,硬是逼着别人使用 GET。这个就是技术界公认的喜欢多管闲事,老是想着帮别人多干一些。想起一位老师说的,搞通信的喜欢做校验,认为做应用的好好做应用就可以了,其他的交给我;而搞应用的自己会校验数据,认为做通信的做好数据传输就可以了,其他的都我自己来。说白了,做什么事情,还是自己最靠谱,都不喜欢人家插足自己的领域吧。

解决方法:
下面的设置无效。
Set-Cookie: widget_session=abc123; SameSite=None
下面的设置有效。
Set-Cookie: widget_session=abc123; SameSite=None; Secure
2021-04-17 06:30:00 1618612200 0.018303