在不使用 cookie 的情况下保持会话的最简单方法是将唯一的哈希(可能是 UUID 或类似的东西)附加到页面中的 url 作为 get 参数:
/my/fancy/url
变成
/my/fancy/url?HASHCODE
每当服务器接收到请求时,它会捕获 HASHCODE(如果存在),否则会生成一个,然后将其附加到所服务页面上的所有链接。
请记住,用户可以操纵 HASHCODE,在设计应用程序时应考虑到这一点。
无论如何,请注意在花式 url 时代它是相当丑陋的。另请注意,用户跟踪是一个微妙的主题,如果您没有在 TOS 中正确声明,您可能会遇到法律问题。
编辑:如果不使用任何变体(闪存、会话存储等)中的 cookie 和站点之间共享的域,您将无法跨多个网站跟踪一个人。没办法,您不能从一个域中设置变量或 cookie,并在任何体面的浏览器中从另一个域访问它,否则这将是一个很大的安全漏洞。
编辑: Panopticlick 不能像您建议的那样用作跟踪方法,因为它基于统计匹配,而且在这方面也很糟糕(尝试从美国以外的地方浏览https://panopticlick.eff.org/或仅使用-发布了 Chrome/Firefox 更新)。这是一个很好的证明概念,但没有任何东西可以用于此目的。此外,您需要大量样本才能获得统计相关的结果。
编辑:浏览器指纹识别能力很弱:许多浏览器都在自动更新(如 Chrome 或 Firefox)并且官方构建的很少(20?40?如果算上 Linux 发行版编译的可能会更多),所以你会发现一个一致的具有相同用户代理的用户的一部分。补充说,有大量具有类似配置的消费类 PC。