如何设置第三方Cookie

7

我如何设置第三方cookie。我的需求是设置cookie,并使cookie在访问的网站中启用,例如我在abc.com中设置了cookie,当我访问cde.com或def.com或ghi.com时,将获取设置的cookie,因此在所有网站上都可以获取cookie。

我如何在javascript中获取所有域名上的cookie。


由于隐私政策的限制,无法独立访问其他域的cookie。 - Aurelio De Rosa
3个回答

5
如果你把abc.com,cde.com和def.com换成它们的子域名abc.xyz.com,cde.xyz.com和def.xyz.com(谷歌搜索subdomain cookies),那么直接共享cookie是可能的。也许你可以将你的网站设置为这样,仍然满足你的要求。
否则,如果所有这些网站不能作为同一域的子域,则可以让其中一个充当中央cookie服务器,当用户在其他域上时,可以使用JSONP将他们重定向到您的cookie域上的某个脚本,该脚本将向您发送他们的ID或其他信息,并使处理AJAX请求的脚本将其域cookie设置为相同的值。例如:
1. 用户访问def.com; 2. def.com上的JavaScript代码向abc.com发出JSONP请求; 3. 如果尚未设置cookie,则abc.com设置cookie; 4. abc.com将cookie值作为响应返回给def.com上的脚本; 5. def.com上的脚本将其本地def.com cookie设置为相同的值;
现在,你的服务器可以协调它们的统计数据等。
所有这一切当然只有在所有网站相互合作的情况下才可能实现,即您的网站不能干扰其他您无法控制的网站的Cookie。
更新:
请参阅Alex Sexton的Breaking The Cross Domain Barrier演讲,以获取一些灵感和代码示例。
更新:
如果您决定使用类似上述方法的方法,请确保您了解潜在的安全问题,例如跨站点请求伪造攻击的可能性。搜索Stack Overflow以获取有关JSONP安全性的更多信息,以便了解如何使其安全。请记住,以上解释是您需要理解的某种复杂过程的简化。您已经被警告过了。

rsp是子域cookie,我需要在def.com或fgh.com上获取在abc.com中设置的cookie。可以使用JavaScript或PHP来实现。请帮忙解决。 - Alok
好的,我将在一个域上分配cookie,就像我在abc.com上设置了一个cookie一样,那么当我访问cde.com时,我如何获取在abc.com上设置的cookie呢? - Alok

2

您只能访问您的域名 cookies。


2

无法分配多域cookie。


好的,我将在一个域上分配cookie,比如我会在abc.com中设置一个cookie,那么当我访问cde.com时,我该如何获取在abc.com中设置的cookie? - Alok

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接