【问题标题】:App sends another session cookie when embedded in an iframe嵌入 iframe 时,应用会发送另一个会话 cookie
【发布时间】:2021-06-27 14:26:55
【问题描述】:

我目前正在开发一个嵌入式 Shopify 应用程序,它基本上是在 Shopify 管理界面上的 iframe 中加载的应用程序。它使用会话 cookie 来存储 Shopify API 的访问令牌。

问题是,我的应用程序的后端会收到不同的会话 cookie,具体取决于应用程序是否加载到 Shopify iframe 中。

cookie 和 SameSite=none 的域相同。

如果它们是从 iframe 设置的,那么浏览器似乎正在对同一域的 cookie 进行沙盒处理。是这样吗?

【问题讨论】:

    标签: session cookies iframe content-security-policy


    【解决方案1】:

    可能是 3 个问题:

    1. 有时您可以拥有几个同名的不同 cookie。浏览器发送所有这些,但在服务器端通常使用关联数组(如 PHP 中的$_COOKIE)。因此,最后一个 cookie 会覆盖所有以前的同名 cookie。 碰巧 iframe 获得与主页不同的 cookie。 使用 Apache 服务器,您可以通过 apache_request_headers() func 访问所有同名 cookie。 RTFM 用于其他服务器的解决方法。

    2. 检查 SameSite 属性 ob cookie - 你使用 SameSite=Lax / SameSite=Strict 属性还是不使用此类属性。
      请注意,SameSite=None 在现代浏览器中需要 Secure 属性,因此适用于 @仅限 987654328@。

    3. “同域”是错误术语,浏览器操作“同源”术语:

      “origin”是sheme:// + hostname + port-number 的元组。

      因此,所有 3 个部分都应该匹配,而不仅仅是域名。

    【讨论】:

      猜你喜欢
      • 2015-07-13
      • 2018-01-08
      • 1970-01-01
      • 2020-05-02
      • 2012-01-21
      • 1970-01-01
      • 2014-03-22
      • 2017-11-23
      • 1970-01-01
      相关资源
      最近更新 更多