来自 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 请求发送。

我知道SameSiteupdates,但我们的流量都是同域的,所以我认为这不会影响我们。

从调试工具调试请求标头:

以下是我的注意事项:

在旧版 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 是 securehttponly。谁能帮我理解:

    为什么 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

Chrome 扩展:阻止来自外部域的内容被加载到特定域的页面中

如何在不更新chrome的情况下更新flash插件

chrome flash

chrome浏览器怎么加载flash?

解决Linux下chrome无法播放flash问题