【问题标题】:Send Ajax request with cookie from 3rd Party Iframe - Safari 14+从 3rd Party Iframe 发送带有 cookie 的 Ajax 请求 - Safari 14+
【发布时间】:2022-08-08 22:33:12
【问题描述】:

我有一个使用 cookie 进行会话管理的服务器端应用程序。浏览器有一些脚本发送 ajax 请求以向会话添加信息。这在生产中运行良好。

企业希望能够通过 iframe 将这个应用程序插入到其他公司的网站中。即 myapp.com 位于 otherbusiness.com 的 iframe 中,当用户单击从 myapp.com 启动的 iframe 中的应用程序中的按钮时,它会发送包含会话 ID 的 cookie 的请求以更新用户的myapp.com 服务器上的会话。

为了使浏览器能够发送 cookie,需要通过设置 SameSite=None 和 Secure 的 cookie 选项来启用第 3 方 cookie。这适用于除 Safari 之外的所有浏览器。

Safari 不再接受 3rd 方 cookie。

我能想出的唯一解决方案是在 URL 中使用会话 ID,但这有点麻烦。

任何人都可以建议一个更好的选择,或者在 url 中更好地实现会话 id 吗?

    标签: cookies iframe safari session-cookies samesite


    【解决方案1】:

    我使用隐藏的 html 字段来传递会话 ID 和到期时间。

    如果找不到 cookie,我的服务器端代码会检查它,在隐藏字段中查找会话 ID 和过期时间。

    这避免了在 url 中传递 id 的安全问题。实现起来有点笨拙,但它确实有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-26
      • 2019-12-11
      • 1970-01-01
      • 2016-07-25
      • 1970-01-01
      • 2019-05-19
      • 2016-04-18
      • 2011-04-12
      相关资源
      最近更新 更多