~/blog/what-your-browser-sharesPOSTED
von Shady Nathan Tawfik · 7. Oktober 2026 · 5 min

Was dein Browser über dich verrät (ohne zu fragen): Eine Live-Demo unter der Navigation

Jeder Seitenaufruf überträgt eine IP-Adresse, HTTP-Header und dutzende Geräteeigenschaften — und ihre Kombination macht Besucher ohne jedes Cookie mit über 90 Prozent Genauigkeit wiedererkennbar. Ich habe ein Transparenz-Banner für diese Website gebaut, das jedem Besucher live zeigt, was sein Browser gerade preisgegeben hat: lokal berechnet, nirgendwo gespeichert — und mit den Gründen, warum ich als Sicherheitsprofi niemanden fingerprinten will.

Interaktiv[blog-2.0]

TL;DR: Öffne irgendeine Website, und dein Browser teilt sofort drei Ebenen an Daten: Netzwerkinformationen, HTTP-Header und dutzende Geräteeigenschaften, die per JavaScript lesbar sind — bevor es überhaupt einen Consent-Dialog gibt. In Kombination ergibt das einen Fingerprint, der dich ohne ein einziges Cookie mit über 90 Prozent Genauigkeit wiedererkennt. Ich habe ein Banner für diese Website gebaut, das jedem Besucher diese Daten live zeigt — lokal berechnet, nirgendwo gespeichert — und erklärt, warum ich als Sicherheitsexperte niemanden fingerprinten will.

Die Ausgangslage

Ich auditiere Websites beruflich — und ein Befund, für den ich fast nie einen Scanner brauche, ist der Besucher selbst. Die meisten Websites sammeln alles, was das Protokoll auf den Tisch legt, zucken mit den Schultern und nennen es „notwendig". Es ist notwendig. Und genau deshalb ist es gefährlich.

Also habe ich mir die unbequeme Frage gestellt, die ich sonst meinen Kunden stelle: Was gibt meine eigene Website über dich preis — sofort, bevor es irgendein Cookie-Banner gibt? Statt in einem Blogartikel mit vagen Prozenten zu antworten, habe ich beschlossen, es zu zeigen. Diese Website zeigt seit heute unter der Navigation ein Live-Banner, das die echten Browserdaten des Besuchers vor dessen Augen einliest — IP-Adresse, Header, GPU, Schriftarten, Canvas-Fingerprint — und dann erklärt, warum ich diese Daten nicht haben darf.

Das Muster

Dein Browser hält keine Geheimnisse. Jeder Seitenaufruf reicht dem Server drei Ebenen an Informationen, ohne dass auch nur eine Frage gestellt wird.

Ebene 1: Netzwerkinformationen (Protokollebene)

Diese Daten sind unvermeidbar — sie sind der Transport selbst:

  • IP-Adresse — die eindeutige Adresse deines Anschlusses. Daraus lassen sich ungefährer Standort (Land, Region, meist Stadt) und Internetanbieter ableiten.
  • Datum und Uhrzeit — der exakte Zeitstempel der Anfrage.
  • Ziel-URL und Referrer — was du geöffnet hast und von wo du gekommen bist.

Ebene 2: Standard-HTTP-Header

Jede Anfrage trägt sie und beschreibt deine Konfiguration präzise:

  • User-Agent — Browser, exakte Version, Betriebssystem, Geräteklasse.
  • Accept-Language — deine Sprachpräferenzen und oft dein Standort.
  • Accept / Accept-Encoding — unterstützte Formate und Kompressionsverfahren.

Ebene 3: Geräteeigenschaften & Client Hints (per JavaScript)

Sobald die Seite lädt, kann Skript dutzende Systemparameter lesen — mit oder ohne Cookies, mit oder ohne Einwilligung:

  • Bildschirmauflösung und Farbtiefe, Fenstergröße, Pixel-Verhältnis
  • Zeitzone, Sprachliste
  • CPU-Kerne (navigator.hardwareConcurrency), geschätzter Arbeitsspeicher (navigator.deviceMemory)
  • GPU und Renderer per WebGL (WEBGL_debug_renderer_info)
  • installierte Schriftarten (über Canvas messbar)
  • Akkustatus, Netzwerktyp (WLAN vs. Mobilfunk, Downlink, RTT)
  • Canvas-Fingerprint, Touchpunkte, Plattform, Cookies erlaubt

Das Problem: Browser-Fingerprinting

Einzeln sind diese Werte langweilig. In Kombination sind sie eine Identität. Browserversion × Betriebssystem × Hardware × Auflösung × Zeitzone × Schriftarten ist so individuell, dass Tracking-Dienste Besucher mit über 90 Prozent Genauigkeit wiedererkennen — ohne Cookies, ohne Identifikatoren, ohne Einwilligung.

Was ich gebaut habe: ein Live-Transparenz-Banner

Das Banner unter der Navigation dieser Website zeigt genau das. Drei Bausteine:

1. Der Server-Echo (/api/client-info)

Eine winzige API-Route spiegelt das zurück, was die Anfrage ohnehin übertragen hat: IP, Geo-Header, User-Agent, Accept-Language, Referrer und Zeitstempel. Nichts wird geloggt, die Antwort ist no-store.

~/code/ts ts
export async function GET(request: NextRequest) {
  const h = request.headers;
  const forwarded = h.get('x-forwarded-for');
  const info = {
    ip: forwarded ? forwarded.split(',')[0].trim() : h.get('x-real-ip'),
    country: h.get('x-vercel-ip-country'),
    city: decode(h.get('x-vercel-ip-city')),
    userAgent: h.get('user-agent'),
    acceptLanguage: h.get('accept-language'),
    referer: h.get('referer'),
    time: new Date().toISOString(),
  };
  return NextResponse.json(info, { headers: { 'Cache-Control': 'no-store' } });
}

2. Die Client-Erfassung

Ein kleines Skript — das weiterhin in deinem Browser läuft — sammelt, was JavaScript ohnehin lesen kann: Bildschirm, Zeitzone, Kerne, Arbeitsspeicher, WebGL-Renderer, Schrifterkennung über Canvas, Akku, Verbindungstyp, Touchpunkte, DNT-Flag. Zusätzlich wird ein Canvas-Fingerprint-Hash errechnet.

3. Der lokale Fingerprint

Alle Browser-Werte werden zu einem einzigen Hash kombiniert — lokal berechnet, im Panel angezeigt, niemals übertragen. Diese eine Zeile ist der Sinn der ganzen Übung: Ein Fingerprint ist keine Hypothese. Er ist zwanzig unscheinbare Werte, die du bei jedem Seitenaufruf produzierst — und ein Hash, den ein Tracker genauso berechnen würde.

Besucher oeffnet die SeiteBanner-Skript startet im eigenen BrowserClient-Erfassung: Bildschirm, Zeitzone, GPU, Fonts, CanvasServer-Echo: IP, Header, Geo, ZeitKombination zu einem lokalen Fingerprint-HashAlles landet nur im Panel im BrowserNichts gespeichert, nichts gesendet

Wo es aufhört

Das Banner ist ein Spiegel, kein Sammler:

  • alles wird im Browser des Besuchers berechnet und angezeigt
  • nichts wird gespeichert — keine Cookies, kein localStorage, keine Logs
  • der einzige Serverkontakt ist der Echo von Daten, die der Browser ohnehin überträgt
  • kein Fingerprint-Hash verlässt je die Seite

Zur Ehrlichkeit gehört: Diese Website nutzt Vercel Web Analytics — cookielose, anonyme Zähler, keine Wiedererkennung, kein Profil.

Reproduktion im Labor

Ich habe das Banner genauso verifiziert, wie ich Audit-Befunde verifiziere: Headless-Browser, frisches Profil, keine Interaktion. Das Panel füllte sich sofort mit echten Werten — Chrome-Version, macOS, Europe/Berlin, 10 Kerne, 32 GB RAM, ANGLE (Apple, ANGLE Metal Renderer: Apple M1 Max), 14 erkannte Schriftarten, ein Canvas-Hash, Akku voll geladen. Jeder Wert kam von genau der Maschine, die die Seite angefordert hat. Genau das ist der Punkt: Niemand brauchte dafür eine Erlaubnis.

Das Experiment dokumentiert auch seine eigenen Grenzen: Do Not Track ist standardmäßig nicht gesetzt, die Geo-Ebene ist nur so genau wie die Datenbank des Hosters, und Browser deaktivieren Teile der API-Oberfläche (etwa Arbeitsspeicher oder Akku) unterschiedlich.

Wie du dich schützt

MaßnahmeWas sie zerstört
Brave / gehärteter Firefox (resist fingerprinting)Gemeldete Canvas-/WebGL-Werte werden generisch
Canvas- und Font-Blocker (uBlock, CanvasBlocker)Canvas-Hash und Schriftliste verlieren ihre Eindeutigkeit
VPN oder vertrauenswürdiger Residential-ProxyAbgeleiteter Standort und ISP verschwinden
Zeitzone/Sprache spoofenEine weitere Entropiequelle fällt weg
Browser-UpdateAltversions-Entropie verschwindet

Was Betreiber besser machen können

  • Nicht sammeln, was du nicht brauchst — Datenschutz beginnt mit Löschen.
  • Keine Client Hints anfordern (Accept-CH) — sie verwandeln Opt-in-Entropie in Standard-Übertragung.
  • Strikte Referrer-Policy und kein Referrer-Leak an Dritte.
  • Consent zuerst, Tracking erst nach Opt-in — alles andere ist ein regulatorischer Unfall.
  • Standardmäßig transparent sein: Wenn ein Besucher sehen kann, was eine Seite über ihn liest, hat die Seite schon die Wahrheit gesagt.

Das Fazit

Browser sind für Bequemlichkeit gebaut, nicht für Diskretion. Solange das so bleibt, wird Fingerprinting die Hintergrundstrahlung des Webs sein — und die beste Verteidigung ist kein weiteres Werkzeug, sondern Verständnis: was übertragen wird, was sich ableiten lässt und wer es kombinieren darf. Mein Banner macht das Unsichtbare lesbar.

Wenn du diese Website besuchst, kannst du es selbst sehen — direkt unter der Navigation.

Shady Nathan Tawfik

Gründer & Cyber IT Security Engineer in Bielefeld. Offensive Security, Audits und Fullstack-Entwicklung. Mehr auf

Nur zu Bildungszwecken. Alle reproduzierbaren Befehle zielen auf meine eigene Lab-Umgebung (localhost), nie auf ein laufendes System. © 2026