如何设置第三方 cookie。我有要求设置 cookie,并且 cookie 将在访问的网站中启用,就像我在访问 cde.com 或 def.com 或 ghi.com 时在 abc.com 中设置了 cookie 一样,所以设置的 cookie 将在所有网站上获取。如何在 javascript 中获取所有域上的 cookie。
3 回答
如果您将使用 abc.xyz.com、cde.xyz.com、def.xyz.com(谷歌获取子域 cookie)而不是 abc.com、cde.com、def.com,则可以直接共享 cookie . 也许可以像这样设置您的网站并且仍然满足您的要求。
否则,如果所有这些网站不能位于同一域的子域中,那么您可能会让其中一个充当中央 cookie 服务器,当用户在其他域上时,您可以使用 JSONP 将它们定向到您的 cookie 上的某个脚本将向您发送他们的 id 或其他内容并使您的脚本处理 AJAX 请求的域将其域 cookie 设置为相同的值。例子:
- 用户访问 def.com
- def.com 上的 JavaScript 代码向 abc.com 发出 JSONP 请求
- 如果尚未设置,abc.com 将设置 cookie
- abc.com 返回 cookie 值作为对 def.com 上脚本的响应
- def.com 上的脚本将其本地 def.com cookie 设置为相同的值
现在您的服务器可以协调他们的统计数据等。
所有这一切当然只有在所有网站相互合作的情况下才有可能,即。您的网站也不能与您无法控制的其他网站的 cookie 混为一谈。
更新:
另请参阅Alex Sexton 的Breaking The Cross Domain Barrier演讲,以获取一些灵感和代码示例。
更新:
如果您决定使用类似于上述方法的方法,请确保您了解潜在的安全问题,例如跨站点请求伪造攻击的可能性。在 Stack Overflow 中搜索 JSONP 安全性,以找到有关如何使其安全的更多信息。请记住,上面的解释是对您需要理解的一些复杂过程的简化。你被警告了。
您只能访问您的域 cookie。
无法分配多域 cookie。