iframe 中的页面看不到自己的 cookie

Page within iframe not seeing its own cookies

我有一个有趣的难题。

我们在不同的域上有 2 个网站。为简单起见,假设它们是:

当我作为用户转到应用程序 (main-app.com/app) 并在那里登录时,它会在我的浏览器中设置一个会话 cookie,用于标识会话。但是,当我转到主机页面 (random-site.com/index.html) 并加载应用程序的 iframe 时,不会发送会话 cookie。当我在网络检查器中查看它时,它只是被忽略了。

为什么会这样?是什么阻止了 cookie 的发送,我们如何解决这个问题?

(我们控制了两个站点)

您在使用 Google Chrome 吗? 在 Google Chrome 中,cookie 的默认属性已更改为 samesite=lax。 samesite=lax cookie 不在 iframe 中发送。此更改的目的是减轻 CSRF 等攻击。 如果您使用 Firefox,您应该仍然在 iframe 中的页面上登录。