【问题标题】:Page within iframe not seeing its own cookiesiframe 中的页面没有看到自己的 cookie
【发布时间】:2021-10-17 15:23:58
【问题描述】:

我有一个有趣的困境。

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

  • “App”:在main-app.com/app 上运行的 SPA 应用程序
  • “主机”:在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 web cookies content-security-policy


    【解决方案1】:

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

    【讨论】:

    • 我正在使用 Chrome... 我将在哪里/如何覆盖此参数?
    • 你可以通过添加属性samesite=none;来覆盖这个参数。安全到 cookie。设置 Cookie:SESSIONID=XXXXXXXX;路径=/;安全的;相同站点=无;
    • 太棒了。这是确切的问题(在 Firefox 中完美运行),我什至不知道在哪里看;花了一天时间,你为我节省了大量时间。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2021-06-14
    • 2013-02-27
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2012-08-13
    相关资源
    最近更新 更多