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

问题描述 投票:0回答:1

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

  • “App”:运行在
    main-app.com/app
  • 上的 SPA 应用程序
  • “Host”:在
    random-site.com/index.html
    上运行的简单index.html页面。 index.html 页面仅包含一个显示应用程序的 iframe(指向
    main-app.com/app
    )。

当我作为用户转到应用程序 (

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

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

(我们可以控制这两个站点)

http security cookies content-security-policy
1个回答
5
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.