SameSite=Lax 远程工作但不在本地工作

SameSite=Lax works remotely but not in local

在使用 SameSite=Lax.

的 iframe 中设置 cookie 时,我看到一些我无法解释的行为

我有两台网络服务器,一台在 your.example.com 上,另一台在 my.example.com 上。 your.example.com 在 iframe 中加载 my.example.com,其中 my.example.com 设置 cookie。这在实际的远程 Web 服务器上运行良好,并且 cookie 的设置没有任何问题。

在我的本地环境中,我在 localhost 中加载一个,然后在 iframe 中加载 my.localhost。当 my.localhost returns cookie 时,我在 Chrome 网络选项卡中看到以下错误: The set-cookie had the "SameSite=Lax" attribute but came from a cross-origin response.

如果我在其自己的选项卡上加载 my.localhost 地址,cookie 会正确设置,但是当我返回时 localhost 除了之前的错误消息外,我还看到以下错误: This cookie had the "SameSite=Lax" attribute and the request was made on a different site. This does not include navigation requests initiated by other sites.

我正在使用 Chrome 版本 80.0.3987.162(官方构建)(64 位)。有人可以解释一下这种行为以及如何在本地实现吗?

我认为如果将所有内容都降低一个级别,您将获得想要的行为。我的意思是,将 dev.localhost 或类似的子域视为您的顶级域。从 dev.localhost 域设置 cookie,您应该会看到 my.dev.locahostyour.dev.localhost 被视为同一站点。换句话说,您的 SameSite=Lax cookie 应该被允许。

警告: 我需要返回并再次仔细检查,但我有理由相信,当我测试类似的设置时,它是有效的!所以,请自己尝试并验证。