【问题标题】:How can I persist a session in an iframe?如何在 iframe 中保持会话?
【发布时间】:2010-10-29 09:14:18
【问题描述】:
假设我有一个网络应用程序,我想使用 iframe 嵌入到任何其他网站中。 iframe 引用我的网站并独立于托管网页运行。
好吧,浏览器将 iframe 视为第三方站点,因此其会话 cookie 被视为第三方 cookie。存在一些使浏览器满意的方法(例如 P3P 标头),但用户仍有可能完全禁用第三方 cookie。如果是这样,那么会话 cookie 不能在 iframe 中持久存在。
在第三方网站的 iframe 中保持会话的好方法是什么?
【问题讨论】:
标签:
security
session
browser
iframe
cookies
【解决方案1】:
我在这里遇到了类似的问题。有一种解决方法(如果您的意图是跨站点跟踪用户行为,则该方法无效)。
我。在要托管 iframe 的域上放置第一方持久性 cookie。 (这可以使用 JavaScript 完成)。
二。动态注入 iframe 并将 cookie 的值传递给您的网站。
三。如果您打算跨站点跟踪用户行为,请修改上述代码,以便在浏览器允许的情况下使用第三方 cookie,否则切换您使用上述方法。
我还没有遇到任何其他解决此问题的方法。如果您找到更可接受的解决方案,请告诉我。
【解决方案2】:
我的目的是在 iframe 中跟踪会话,以便点击和重新加载保持状态。无需在 iframe 和托管站点之间链接会话。
我能想到的最好的方法是无 cookie 会话。这有点手动,但这个站点运行 PHP,我只需要确保查询字符串始终包含“PHPSESSID=x”,它会自动附加到该会话 ID。