基于主机域限制 iframe cookie

Restrict iframe cookies based on host domain

我有一个 Web 应用程序要加载到不同主机上的 iframe 中(假设从 myiframe.com 提供服务)。为了维护 session 我使用了一个名为 'session' 的 cookie,它是在第一次请求 iframe 的内容时设置的,域为 myiframe.com.

现在假设主机 A (a.com) 加载了 iframe,因此 session cookie 设置为域 myiframe.com。如果您导航到主机 B (b.com),则会使用相同的 session cookie。我想要的是 session 是相互独立的,你可以在 A 中有一个 session 而在 B 中有一个不同的。即当从 B 请求应用程序时,不使用从 A 请求时设置的 cookie。

我想我可以根据主机使用不同的 cookie 名称,然后通过将适当的 cookie 与主机信息匹配来验证 session,但我想知道我是否可以使用 'set-cookie' header 和 cookie 的域字段。

顺便说一句,我无法控制主机或它们添加 iframe 的方式,尽管它们都以完全相同的方式添加。

编辑:用于获取 iframe 内容的请求包含足够多的信息来可靠地识别主机。这不是问题。

您不能为“其他”域设置 cookie,因此您从 myiframe.com 加载的内容将无法为 a.comb.com

如果您有一种机制来确定您的内容通过 iframe 嵌入的位置(引荐来源网址对此不起作用,resp. 太不可靠),那么您可以使用不同的会话 cookie 名称来获得不同的会话“对于” a.com 和 b.com.

内的 iframed 内容 运行