第三方“跟踪cookie”是如何工作的?

144

我阅读了这篇问题:互联网广告商如何使用第三方Cookie?,但仍然感到非常困惑。

我不明白的是,如果我访问网站A(一个正常的带有广告的网站),网站B(一个广告网站)如何为我的电脑分配一个ID,并找出我曾经浏览过的网站A及其后面出现的其他带有它广告的网站。

1个回答

304
首先,cookie是通过HTTP头设置和检索的。如果您的浏览器向http://example.com发送请求,则响应可能会返回一个标题,其中包含Set-Cookie: foo=bar。您的浏览器存储此cookie,在任何后续对http://example.com的请求中,您的浏览器都将在Cookie头中发送foo=bar。(或者至少直到cookie过期或被删除。)无论谁发起请求或上下文是什么,浏览器都将使用任何请求发送foo=bar cookie到http://example.com。如果http://2.example包含标签<img src="http://example.com/img.jpg">,则当浏览器获取http://example.com/img.jpg时,它将发送cookie foo=bar,即使http://2.example负责发送请求。

因此,如果网站A包含由网站B提供的广告,则网站B可以在您的浏览器中设置cookie。例如,也许网站A使用<iframe src="http://websiteB.example/ad.html></iframe>来从网站B提供广告。然后,当您的浏览器去获取http://websiteB.example/ad.html时,响应将返回一个Set-Cookie标题,其中设置一个具有某些唯一随机字符串的cookie。如果网站C也包括来自网站B的广告,则当从网站B获取网站C上的广告时,将发送该唯一cookie。

关于网站B如何知道你实际访问的是哪个网站,有多种方式。在某些情况下,当浏览器向一个网站发送请求时,它会告诉该网站你来自哪个网站。因此,当浏览器获取 http://websiteB.example/ad.html 时,它可能会包含 HTTP 头部 Referer: http://websiteA.example,告诉网站B该请求是由网站A发起的。每次网站B看到它为你分配的唯一随机字符串时,它可以检查 Referer 头部,并将其添加到其记录你访问过哪些网站的日志中。如果网站A与网站B合作,A可以直接告诉B你来自网站A。例如,网站A可以通过使用 <iframe src="http://websiteB.example/ad.html?referer=websiteA.example"> 包含来自网站B的广告,然后网站B将在查询字符串中看到 Referer。


4
你好Emily :) 非常感谢你提供详细的答案!!我只有一些问题:首先,如果网站A不与网站B合作,是否有其他机制可以让网站B知道我是从哪个网站来的?其次,除了cookie之外,还有其他第三方跟踪工具吗? - mounaim
6
针对你的第一个问题:如果A不与B合作,它在其网站中就不会包含任何B的追踪代码,因此逻辑上是不可能进行追踪的。针对你的第二个问题:除了cookie外,确实有很多跟踪方法。一个良好的研究起点可能是EverCookie http://samy.pl/evercookie/。例如,HTML5的localStorage也可以用于存储和检索标识符。此外,还可以使用浏览器指纹识别技术秘密地进行跟踪,https://panopticlick.eff.org/。如果您想了解更多信息,请留言给我以获取更多资料。 - Thorben
2
@Thorben,当然,除非您的浏览器使用Referrer HTTP头。 - nhooyr
1
@aubble 是的。引荐者可以揭示最后访问的网站。然而,在跟踪的背景下,网站A仍需要在其页面上包含指向网站B的链接。因此,在某种程度上,将网站B的链接放置在网站A上是一种合作。当考虑到广告网络等因素时,这可能会依赖于不同的观点。 - Thorben
你好,由于主流浏览器已经弃用了第三方Cookie,这个答案还是否相关? - Kay
显示剩余2条评论

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