来自 Flash 的 Chrome 80 POST:无 cookie,Origin null(非跨站点)
Posted
技术标签:
【中文标题】来自 Flash 的 Chrome 80 POST:无 cookie,Origin null(非跨站点)【英文标题】:Chrome 80 POST from Flash: no cookies, Origin null (not cross-site) 【发布时间】:2020-07-01 04:08:15 【问题描述】:用户已经开始在 Chrome 80 下遇到基于 Flash 的流量问题:Cookie 没有通过POST
请求发送。
我知道SameSite
updates,但我们的流量都是同域的,所以我认为这不会影响我们。
从调试工具调试请求标头:
以下是我的注意事项:
在旧版 Chrome 73 中:
没有Sec-Fetch-*
标头
Origin
标头始终正确
cookie 发送正确
在 Chrome 80 中,GET 请求:
Origin
正确,发送cookies
现在有Sec-Fetch-*
标头
Sec-Fetch-Site
cookie 表示cross-site
-- 是这样吗?这是由浏览器决定的,对吗?为什么 Chrome 会将流量标记为跨站点? - 请求 URL 与我的页面相同,与 window.location.hostname
相同。
在 Chrome 80 中,POST 请求:
Sec-Fetch-*
cookie 与 GET 相同
Origin
标头是null
- 等等,为什么?这也是由浏览器分配的,对吧?为什么为空?
cookie 未发送
这对我来说完全没有意义。它总是有效的,我们不使用多个域,我们的 cookie 是 secure
和 httponly
。谁能帮我理解:
-
为什么 Chrome 80 会将我的请求标记为
Sec-Fetch-Site: cross-site
?
为什么 Chrome 80 会发送 Origin: null
而没有用于 POST 的 cookie?
【问题讨论】:
您的 cookie 是否有 SameSite=None 和 Secure 标志? 【参考方案1】:我遇到了同样的问题。对于来自 Flash 的 post 请求,有时请求根本不包含 cookie,有时它只包含一个 cookie 键(我的 cookie 中有多个键)。这看起来像是 Chrome 80 中的一个错误,除非他们是故意这样做的,否则他们想长期杀死 Flash。
【讨论】:
我真的很想知道这是不是“故意/不在乎”。但是我创建了一个小测试用例,没有遇到问题。所以现在我很困惑......你是否偶然使用了 crossdomain.xml 文件? 您好,我也面临同样的问题,有时 JSESSIONID cookie 会在 POST 请求中传输,有时则不会。因为,JSESSIONID cookie 没有 SameSite=None 和 Secure 标志。请在此处阅读更多信息:docs.adobe.com/content/help/en/target/using/implement-target/…以上是关于来自 Flash 的 Chrome 80 POST:无 cookie,Origin null(非跨站点)的主要内容,如果未能解决你的问题,请参考以下文章
Tomcat 启用 CORS:来自 Safari 的 POST 请求返回 200,Chrome 和 Firefox 返回 403