【问题标题】:Cross domain cookie tracking跨域 cookie 跟踪
【发布时间】:2011-01-26 12:02:27
【问题描述】:

我工作的公司有四个域,我正在尝试设置 cookie,因此可以在所有域中生成和跟踪一个 cookie。通过阅读这里的各种帖子,我认为这是可能的。

我在一个站点上设置了一个子域,为所有四个站点提供一个 cookie 和 1*1 像素图像。

但我无法在其他网站上使用它。

如果有人可以澄清:

  1. 可能吗?
  2. 如果我遗漏了一些明显的东西或一个很好的例子的链接?

我正在尝试用 PHP 做这个服务器端。

谢谢

【问题讨论】:

    标签: php cookies cross-domain


    【解决方案1】:

    您是否因 Internet Explorer 及其隐私问题而遇到问题? Session variables are lost if you use FRAMESET in Internet Explorer 6

    回到我以前的互联网时代,当 IE6 刚问世时,我们不得不实施这个,因为它破坏了我们的一些跟踪。令人惊奇的是,您所要做的就是伪造它,并且一切正常。

    您在正确的轨道上,我们有一个托管跟踪 cgi 的域,该域提供 1x1 透明像素并跟踪用户正在访问的页面。然后,我们有一个自定义解析器,它将这些数据与 Apache 日志结合起来,并通过我们的网站动态创建用户流量模式图。这是使用 Graphviz 包中的点。

    【讨论】:

      【解决方案2】:

      如果您只是想进行统计,这种事情很容易,但如果您实际上想跨域保存用户数据,则必须做一些更复杂的事情。

      设置跨域 cookie 的最佳方法是确保您的所有网站都是一个主域的子域,例如 initech.com。因此,您的站点之一 site1.initech.com 将 cookie 设置为“.initech.com”域,并且运行良好。

      如果您的网站位于完全不同的域上,这可能会成为问题。

      与其尝试设置每个站点都可以访问的 cookie,不如确保每个站点都拥有与原始 cookie 完全相同的副本。因此,让您的站点 site1.com 为自己设置 cookie,并输出三个 1x1 gif 或 AJAX 调用或其他任何内容,以将相同的 cookie 设置为相同的值。

      这将很难安全可靠地完成;)

      为确保有人无法在您的域上设置任意 cookie,您需要在图像标签上传递 cookie 值的哈希值。如果要设置的 cookie 是“mycookieval”,也通过 md5("mycookieval"."somesecretstring".$_SERVER['REMOTE_ADDR'])。这可能很糟糕,因为它可能允许攻击者将相同的 cookie 设置为相同的 IP 地址,或者可能会暴力生成哈希。

      您可以通过在设置 cookie 时将记录插入后端数据库并让其他三个站点检查其有效性来弥补这一点。

      【讨论】:

      • 它不是最好的方法 - 它是唯一的方法,即使这样它也会失败,具体取决于浏览器配置。使用 SSO 机制来实施解决方案(您实际上不必询问用户名和密码),您在每个域上都有 副本 cookie
      【解决方案3】:

      这个问题很冷,但万一其他人绊倒它,或者 OP 仍然需要,我创建了一个 NPM 模块,它允许您跨域共享本地存储的数据。看起来这完全可以满足 OP 的需求,并且不需要所有站点共享一个基本域。

      通过使用托管在域 A 上的 iframe,您可以将所有用户数据存储在域 A 上,并通过向域 A iframe 发布请求来引用该数据。

      因此,域 B、C 等可以注入 iframe 并向其发布请求以存储和访问所需的数据。域 A 成为所有共享数据的中心。

      通过域 A 内的域白名单,您可以确保只有您的依赖站点才能访问域 A 上的数据。

      诀窍是将代码放在域 A 上的 iframe 内,该代码能够识别正在请求的数据。上述 NPM 模块中的 README 更深入地介绍了该过程。

      希望这会有所帮助!

      【讨论】:

      • @AffanShahab - 确实如此。
      • 我昨天检查过,它不工作,显然 safari 浏览器不允许了
      • 我第一次关注这篇文章,也没有在 Safari 上运行,遇到了你的包。同样的结果,在 Safari 上不起作用。 medium.com/building-contently/…
      • 奇怪 - 我刚刚检查了 Safari,它对我有用。您是否按照自述文件中冒烟测试下的说明进行操作?
      • 我做到了,dependant-site.com 上的 cookie 设置正确,但是当我继续 source-of-truth.com 并看到 cookie 时,它​​们不存在。有一件事,如果选中“防止跨站点跟踪”,您能否检查一下您的 Safari 浏览器。
      猜你喜欢
      • 1970-01-01
      • 2020-10-30
      • 2017-09-13
      • 2014-05-02
      • 2018-04-01
      • 2011-08-23
      • 1970-01-01
      • 1970-01-01
      • 2019-07-24
      相关资源
      最近更新 更多