Früher™ lief das so: Jede Webseite verwendet ein 1-Pixel-Bild https://evil.com/tracker.gif
Beim Laden des Bildes wird die URL der Webseite und ein Cookie (UUID) übertragen. Daher kennt evil.com den Browser-Verlauf.
Dann kam Javascript. Dann kam das Blockieren von 3rd-Party-Cookies; Firefox und Spezialbrowser schon länger, Chrome bald.
Aber irgendwie funktioniert das doch immer noch. Kunde sucht nach einem Produkt auf Amazon und sieht Werbung auf Facebook.
Wie?
Fingerprinting wäre eine Option, Email-Matching wäre eine Option. Aber geht das auch noch mit Cookies o.ä.?
Im Zweifel könnte ja eine Webseite auch einfach statt
https://evil.com/tracker.js
einfachhttps://evil.com/tracker.js?uuid=a572fce3124fb5
einbinden. Oder beliebig andere Daten übermitteln.Ja, aber ohne cookie an der evil.com Domain, kannst du nicht über Domains hinweg tracken…
Welche legitime Anwendung wäre denn davon betroffen?
Ob legitim oder nicht, ich frag mich wie die werbenetzwerke das tun.
Im Kontext geht es ja um die ursprüngliche Seite, die kooperieren kann. Sofern ich da eingeloggt bin, könnte sie statt einem zufälligen Wert auch einen definierten Hash meiner Mailadresse übergeben. Die wäre ja für die meisten User auf allen verwendeten Seiten gleich. Da es direkt im GET beim Abruf des JS passiert, kann das dann Serverseitig munter korreliert werden, selbst wenn Browser die Third Party Cookies nun je First Party Seite sandboxen…
Wozu als Hash? Plaintext kann der Tracker weitaus mehr korrelieren. Es sind so oder so persönliche Daten und wäre damit ein Verstoß gegen die DSGVO, wenn es nicht irgendwo in den Datenschutzinfos aufgefürt wurde. Wenn der Firma das egal ist oder sie es eben aufführt, spielt Hashing keine Rolle mehr.
Ja, aber Hash ist unauffälliger für den Durchschnittsuser und gibt doch das Feigenblatt der “Aggregierung” (weil potentiell Mailadressen Kollisionen haben könnten - haha) oder zumindest “Pseudonymisierung” ohne ernsthaft was an der Auswertbakeit der Daten zu ändern.
Wenn jeder einfach
tracker.js?id=md5(User.mail)
macht, ist das genauso zuverlässig, wie mit Mailadresse im PlaintextWenn’s der Dienst selbst macht, kann der das aber übers Backend verschicken bzw halt als Proxy fungieren. Da kriegst du nichtmal mit, wie die Payloads aussehen.