如何在不同域之间共享cookie?

时间:2014-05-06 09:16:00

标签: cookies coldfusion session-cookies

我有一个管理员网站(示例:http://www.admin.web.com/control/)和公共网站,如(http://example.web.comhttp://example.com

我想从http://www.admin.web.com/control/创建一个Cookie,该Cookie将与网站http://www.example.web.comhttp://www.example.com共享。

此处两个公共网站的网址相同

因此,为了共享cookie,我正在创建特定于域的cookie

<cfcookie name="admin" value="xyz" domain=".web.com">

因此,将从http://admin.web.com创建的Cookie将与http://example.web.com共享,但不会与http://example.com共享。

任何人都可以告诉我如何为http://example.com分享相同的Cookie吗?

1 个答案:

答案 0 :(得分:8)

简短的回答是,你不能。就用户浏览器而言,admin.web.com和example.web.com是同一个(web.com)域的子域,因此它们可以由同一个人拥有。这意味着您可以对其进行设置,以便您在上面看到的共享有效。 不幸的是,您已经看到example.com不共享域名,因此您无法将其作为域cookie共享。

有几种方法可以解决这个问题,我可以想到这一点,但没有一个特别好看:

  • 你可能可以使用ajax callstraight来自example.com的example.web.com,并在页面的响应中使用cookie的内容。
  • 您可以在example.com页面中使用指向example.web.com页面的iframe,然后从read cookie中发送详细信息,然后在example.com上设置相同的cookie。

出于明智的安全原因,这样做并不是一个好主意,而是寻找您尝试跨域共享信息并试图找到避免它的方法的原因。

相关问题