
Browser-Privatsphäre-Leck-Detektor — acht Erkennungsmodule, Risikobewertung und Pro-Konto-Verlauf, alles in Ihrem Browser.
Browser-Datenschutzleck-Detektor — acht Erkennungsmodule, Risikobewertung und Kontoverlauf, alles in Ihrem Browser.
Erstellt mit Verdent — einem agentischen Programmierassistenten. Jedes Erkennungsmodul, das Analyse-Dashboard, der API-Key-Authentifizierungsablauf, die zweisprachige Benutzeroberfläche und das Kubernetes-bereite Docker-Image wurden in Pair-Programming-Sitzungen mit Verdent entworfen und implementiert.
Öffnen Sie eine URL, klicken Sie auf Alle ausführen, und innerhalb weniger Sekunden zeigt Leakish,
was Ihr Browser über Sie und Ihr Netzwerk preisgibt – über WebRTC, Fingerprinting-APIs, DNS und
eine serverseitige Prüfung. Acht unabhängige Module erzeugen jeweils ein typisiertes Ergebnis +
Risikosignale, eine aggregierte Bewertung (0–100) und eine Stufe (safe / warning / critical).
Angemeldete Benutzer können Scans in MySQL speichern, den Verlauf durchsuchen und ein Analyse-Dashboard
öffnen, das Verteilungsdiagramme, Fingerabdruck-Hash-Wiederholungen, eine IP-/ASN-Zeitlinie,
Ausreißer-Scans und einen paarweisen Vergleich anzeigt. Alles andere (der Detektor selbst) funktioniert
ohne Konto – jeder kann auf /app landen und einen Scan durchführen.
| ID | Modul | Untersuchte Aspekte |
|---|---|---|
network-probe | Netzwerk-Ausgangsprüfung | Vom Server beobachtete öffentliche IP, ASN, Land/Region/Stadt, VPN/Proxy/Tor/Hosting-Flags, TLS/HTTP |
webrtc | WebRTC | Öffentliche IPv4 + IPv6 via STUN, RFC1918-Lecks, mDNS-verschleierte .local-Kandidaten |
browser-fingerprint | Browser-Fingerabdruck | UA, Bildschirm, Zeitzone, Plugins, CPU-Kerne, Gerätespeicher, Sprachliste, DNT, Cookies |
canvas-fingerprint | Canvas / WebGL | 2D + WebGL Renderer-/Anbieter-Strings, Textdarstellungs-Eigenarten, unterstützte Bildformate |
audio-fingerprint | Audio | AudioContext-Abtastrate, Kanäle, Latenz, Oszillator-Ausgabe-Hash |
font-detection | Schriftarten | 40+ benannte Schriftarten-Prüfungen via Canvas-Breitendifferenz-Erkennung |
dns | DNS | DoH-Erreichbarkeit, DNSSEC-Signal, Resolver-Geolokalisierung, DNS-Leck-Heuristik |
cdp-detection | Automatisierung / Headless | navigator.webdriver, CDP-Timing, Chromium-spezifische API-Oberfläche, Port-Prüfungen — Konfidenz 0–1 |
Jedes Modul wird über eine einzige typisierte DetectionModule<T>-Schnittstelle registriert und läuft isoliert – ein Modul, das eine Ausnahme auslöst, beeinträchtigt nicht die anderen. Der Aktivierungsstatus pro Modul wird in localStorage mit einem Versionsschlüssel gespeichert, überlebt Aktualisierungen, und die Schaltfläche Alle ausführen durchläuft nur die aktivierte Menge.
/api/detect/network zugreift, um seine eigene vom Server beobachtete IP zu lesen, oder (c) das DNS-Modul mit https://dns.google/resolve kommuniziert.leakish.locale-Cookie gespeichert, steuert <html lang>, Seitenmetadaten, jeden Bildschirm, jede API-Fehlerantwort und die Magic-Link-Anmelde-E-Mail.det_…-API-Schlüssel erstellen (SHA-256 gespeichert, einmal im Klartext angezeigt). Jeder /api/detect/*-Endpunkt akzeptiert entweder ein Session-Cookie oder einen Bearer-Key, sodass derselbe Scan von einem CLI/CI-Job aus gespeichert werden kann./scans/analytics — Verteilungsdiagramme nach Zeitzone/Plattform/Sprache/Bildschirm/WebGL/ASN/Land/Schriftanzahl, Fingerabdruck-Hash-Wiederholung mit einer risikoabhängigen Bewertung pro Art, IP-/ASN-Zeitlinie, mehrdimensionaler Ausreißer-Detektor, paarweiser Vergleich mit einem Ähnlichkeitswert von 0–100.lib/risk/assess.ts erzeugt typisierte RiskSignals mit stabilen IDs (z.B. webrtc.public-ip-leak), Zusammenfassungen pro Modul und eine einzelne aggregierte Bewertung. Gebietsschema-bewusst durch Messages-Injektion.POST /api/detect/scans akzeptiert einen Idempotency-Key-Header, begrenzt jeden Benutzer auf 200 Scans und beschränkt Speicherungen auf 10/Stunde.node:22-alpine, Next.js Standalone-Ausgabe, Bereitstellung auf Kubernetes über den Workflow unter .github/workflows/.Voraussetzungen: Node 22+ (alles ab 20+ funktioniert für die lokale Entwicklung), Yarn 1.x, eine laufende MySQL-Instanz und (optional) ein Google OAuth-Client.
yarn install
cp env.example .env.local # Füllen Sie mindestens DATABASE_URL, NEXTAUTH_SECRET und IP_HASH_SALT aus
yarn prisma:generate
yarn db:push # Tabellen in einer frischen DB anlegen
yarn dev # http://localhost:3000
Mindestumgebung für eine funktionierende Anmeldung:
DATABASE_URL — z.B. mysql://root:[email protected]:3306/detectNEXTAUTH_SECRET — openssl rand -base64 32NEXTAUTH_URL — http://localhost:3000 in der EntwicklungIP_HASH_SALT — openssl rand -base64 32Optional:
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET für die Google-AnmeldungMAILGUN_API_KEY / MAILGUN_DOMAIN / EMAIL_FROM für den echten Magic-Link-Versand (ohne diese wird der Link in der Entwicklung in der Serverkonsole ausgegeben)IPINFO_TOKEN zur Anreicherung der Netzwerkprüfung mit ASN / VPN / Proxy-DatenDie vollständige kommentierte Liste finden Sie in env.example.