没有Cookie,没有问题-使用eTag进行用户跟踪

2020-07-09 06:53:37

作为一家领先的国际分析供应商的高级数字分析顾问,我一直在密切关注当前现代网络浏览器对cookie技术的挑战。

事实证明,有一种方法可以在不使用Cookie的情况下跟踪单个未登录用户。我实施了它。这就是如何做到这一点的。

简短的开场白:这篇文章的全部意义在于引发业界和用户之间的讨论和意识。就我个人而言,我永远不会主张使用这些跟踪实践,我很高兴能为一家始终将隐私、透明度和完整性放在首位的分析供应商工作。此外,从法律角度来看,这种技术并不规避GDPR或类似的隐私法。只是因为从技术上讲,eTag不是cookie,并不意味着它们不在此类指南的涵盖范围内,不需要用户同意。

点击三页→Same ID。关闭浏览器窗口并重新打开站点→Same ID。关闭您的计算机,明天再来→Same ID。检查您的Cookie→站点既不会丢失也不会读取任何Cookie。检查URL→无可疑查询字符串。

那么,我如何才能保留ID并知道您的特定设备正在返回站点,而不需要您登录,也不会丢失cookie呢?

如果你是一个比较活跃的互联网用户,你会听说关于浏览器cookie的持续争议以及它们是如何被使用的。目前,Cookie技术越来越多地被浏览器淘汰,并受到GDPR或CCPA等隐私准则的严格监管。虽然这一发展无疑是迈向更加注重隐私的互联网的重要一步,但它也对大多数网站的核心功能、用户体验、互联网的经济结构和数字分析行业造成了巨大的损失。虽然浏览器cookie作为返回用户的可靠标识符的消亡几乎是板上钉钉的,但仍然有其他web技术依赖于在本地机器上存储信息。

输入:CACHE。本质上,Web缓存意味着将来自Web的数据存储在您的设备上,以便浏览器稍后在再次请求相同资源时可以重用该数据。例如,当用户第一次加载网页时,服务器会将整个页面发回浏览器。当页面被缓存并且用户在第二天再次请求同一页面时,浏览器会记住该页面,服务器不必再次发送该页面,并且可以立即从浏览器缓存中显示该页面。这样做速度快得多,并且节省了带宽。一般而言,缓存技术显著提高了Web内容的交付速度,同时也减少了服务器端需要完成的工作。

可以使用eTag执行缓存。eTag是附加到服务器传递的每个资源(例如网页或图像)的ID。这是服务器知道用户是否缓存了资源的最新版本的方式。当服务器上的资源发生更改时,会为该资源生成一个新的ETag ID。

星期一用户首次请求网站→请求中没有ETag请求的→站点随ETag 123一起发回→站点存储(缓存)在本地设备上。

星期二用户再次请求同一站点→ETag 123被包括在请求→中服务器检查资源是否已改变(‘ETag ID是否仍然相同?’)→如果ETag没有改变,则服务器指示浏览器简单地使用周一交付和缓存的站点→不必再次发送资源,这节省了时间和带宽。

虽然eTag在用于缓存时很有用,但该功能也可能被劫持并被故意误用于用户跟踪。

我在每个页面上嵌入了相同的IFRAME。这个iFrame只是一个白色的1x1像素,对用户来说是不可见的。

当请求此iframe资源时,我通过服务器端的PHP创建了一个随机ID。我使用此ID覆盖IFRAME的ETag ID,该ID通常是自动发出的。

每次用户请求三个页面中的一个(因此请求该iframe)时,我的ETag ID都会包含在请求中。然后,我在服务器端检查该ID是否存在,或者这是否是第一次没有ETag的请求。如果ETag存在,则返回→:返回访问者。保留身份证,然后寄回同样的身份证。如果ETag不存在,则为→:新访问者。新ID。从那时起,此ID将包含在网站上该用户设备的所有请求标头中。

作为最后一步-以下是这个ETag ID如何进入分析:我在服务器端的IFRAME中打印请求/响应头中的ID。这个iFrame现在对用户是不可见的,它包含了用户的ID。然后我通过JavaScript从客户端获取它,并简单地将此ID包含在我的分析跟踪请求中,而不是cookie ID。

防止ETag跟踪可能相当困难。它不依赖于cookie或本地浏览器存储。ETag交换在没有JavaScript的情况下工作。并且它不使用用户代理。

在浏览器设置中禁用缓存要小心-如上所述,缓存可能非常有用,并且有很多优点。

使用浏览器加载项修改标头虽然大多数浏览器本身不提供修改标头的选项,但有大量的浏览器扩展可用,如ModHeader。为什么这个管用呢?ETag功能依赖请求头和响应头来交换ID。例如,如果用户在每个请求上覆盖If-None-Match头为空,则会在每个页面请求上生成一个新的ETag值。这将防止用户的设备被识别。

我为什么要测试这些东西?我为什么要写这篇文章?我当然不打算大规模使用它。但是,虽然eTag可以用来作恶,但这个例子证明了一个更大的观点:像大多数其他技术一样,它默认情况下不一定是有害的。它总是取决于应用程序。

我相信每个人都应该意识到这些方法是存在的,这一点很重要。他们可能会被杠杆化。在过去,已经有相当多的网站非法使用这种特定的ETag劫持。其中一些案件是通过诉讼解决的。这些方法只可能会越来越多地被恐惧的广告业重新采用,他们正眼睁睁地看着自己的主要基石之一--饼干--崩溃。

在Wendy的Cookies和跟踪技术政策中,可以找到Web上众多ETag示例中的一个:

上面的格式回复似乎是许多网站在隐私政策中使用的开箱即用的蓝图。需要明确的是:这本身既不是坏事,也不是非法的。当然,ETag值必须是唯一的。这就是它们为缓存目的而工作的全部意义所在。然而,这一节的措辞非常模糊和模棱两可,特别是在声明这些ETag值是否用于跟踪时。这就是我觉得麻烦的地方。在联系温迪的隐私团队后,他们回复了一封标准化的复制粘贴电子邮件,确认不使用eTag进行跟踪。然而,隐私政策让这扇门敞开着。这就是我感到担忧的地方。

我相信行业内公开和透明的知识转移-在分析供应商、出版商、广告业和互联网用户之间。在我看来,缺乏这一点是我们最终陷入这场混乱的饼干大战的主要原因之一:互联网生态系统一直受到缺乏透明度的影响。技术发展太快,立法跟不上步伐,普通公众不可能理解Cookie等网络技术的来龙去脉。当它们被不适当地使用时,用户会感到被侵犯,这是可以理解的。但因此扼杀这项技术似乎是一个典型的治标不治本的案例。许多科技公司滥用饼干等技术,这一事实在公众视线中不公平地诋毁了它们。进而导致浏览器和立法采取不成比例的措施。虽然这些措施在个人隐私方面做了很多好事,但它们同时也损害了好的和有意义的技术创新。

总是有细微差别的。我坚信认真的数字分析的合法性和重要性-只要它是在正确的隐私合规水平下执行的。当涉及到合法访客身份识别时,下一步是什么?电子标签肯定是不可持续的。但有一点是肯定的:这个行业永远不会变得无聊。

-如果你想讨论上面的例子,或者如果你认为你已经找到了用户识别的新圣杯,请随时联系。-