
Обнаружитель утечек приватности в браузере — восемь модулей обнаружения, оценка риска и история по аккаунтам, всё в вашем браузере.
Детектор утечек приватности браузера — восемь модулей обнаружения, оценка рисков и история по аккаунтам — всё в вашем браузере.
Создано с помощью Verdent — агентного ассистента по программированию. Каждый модуль обнаружения, аналитическая панель, аутентификация по API-ключу, двуязычный интерфейс и готовый для Kubernetes Docker-образ были спроектированы и реализованы в сессиях парного программирования под управлением Verdent.
Откройте URL, нажмите Запустить всё, и через несколько секунд Leakish сообщит вам,
что ваш браузер раскрывает о вас и вашей сети — через WebRTC, API снятия отпечатков,
DNS и серверный зонд. Восемь независимых модулей каждый выдают типизированный
результат + сигналы риска, агрегированную оценку (0–100) и уровень
(safe / warning / critical).
Авторизованные пользователи могут сохранять сканы в MySQL, просматривать историю и
открывать панель аналитики, которая показывает диаграммы распределения, повторяемость
хэшей отпечатков, временную шкалу IP/ASN, выбросы и попарное сравнение. Всё остальное
(сам детектор) работает без аккаунта — любой может перейти на /app и запустить скан.
| ID | Модуль | Что проверяет |
|---|---|---|
network-probe | Зонд сетевого исхода | Общедоступный IP, ASN, страна/регион/город, флаги VPN/прокси/Tor/хостинг, TLS/HTTP |
webrtc | WebRTC | Публичные IPv4 + IPv6 через STUN, утечки RFC1918, mDNS-обфусцированные кандидаты .local |
browser-fingerprint | Отпечаток браузера | UA, экран, часовой пояс, плагины, ядра CPU, память устройства, список языков, DNT, куки |
canvas-fingerprint | Canvas / WebGL | Строки рендерера/вендора 2D + WebGL, особенности отрисовки текста, поддерживаемые форматы изображений |
audio-fingerprint | Аудио | AudioContext частота дискретизации, каналы, задержка, хэш выхода осциллятора |
font-detection | Шрифты | 40+ проб именованных шрифтов через определение разницы ширины Canvas |
dns | DNS | Доступность DoH, сигнал DNSSEC, геолокация резолвера, эвристики утечки DNS |
cdp-detection | Автоматизация/безголовость | navigator.webdriver, тайминги CDP, только для Chromium API, портовые пробы — достоверность 0–1 |
Каждый модуль регистрируется через единый типизированный интерфейс DetectionModule<T>
и выполняется изолированно — сбой одного модуля не влияет на другие. Состояние
включения каждого модуля сохраняется в localStorage с ключом версии, переживает
обновление страницы, а кнопка Запустить всё обрабатывает только включённые модули.
/api/detect/network, чтобы получить
собственный IP, наблюдаемый сервером, или (в) модуль DNS связывается с
https://dns.google/resolve.leakish.locale, управляет <html lang>, метаданными страниц, каждым
экраном, каждым ответом API с ошибкой и письмом для входа по магической ссылке.det_… на странице
Интеграции (SHA-256 хранится, открытый текст показывается один раз). Каждый
конечный пункт /api/detect/* принимает либо сессионную куку, либо Bearer-ключ,
поэтому один и тот же скан можно сохранить из CLI / CI-задачи./scans/analytics — диаграммы распределения по
часовому поясу / платформе / языку / экрану / WebGL / ASN / стране / количеству
шрифтов, повторяемость хэшей отпечатков с оценкой риска для каждого вида,
временная шкала IP/ASN, многомерный детектор выбросов, попарное сравнение с
оценкой сходства 0–100.lib/risk/assess.ts
генерирует типизированные RiskSignal с устойчивыми ID (например,
webrtc.public-ip-leak), сводки по модулям и единую агрегированную оценку.
Осведомлённость о локали через внедрение Messages.POST /api/detect/scans
принимает заголовок Idempotency-Key, ограничивает каждого пользователя 200
сканов и ограничивает скорость сохранения до 10/час.node:22-alpine,
автономный вывод Next.js, развёртывается на Kubernetes через workflow в
.github/workflows/.Предварительные требования: Node 22+ (подходит любой 20+ для локальной разработки), Yarn 1.x, работающий экземпляр MySQL и (опционально) клиент Google OAuth.
yarn install
cp env.example .env.local # заполнить DATABASE_URL, NEXTAUTH_SECRET, IP_HASH_SALT как минимум
yarn prisma:generate
yarn db:push # создать таблицы в свежей БД
yarn dev # http://localhost:3000
Минимальное окружение для работающего входа:
DATABASE_URL — например, mysql://root:[email protected]:3306/detectNEXTAUTH_SECRET — openssl rand -base64 32NEXTAUTH_URL — http://localhost:3000 в разработкеIP_HASH_SALT — openssl rand -base64 32Опционально:
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET для входа через GoogleMAILGUN_API_KEY / MAILGUN_DOMAIN / EMAIL_FROM для реальной доставки магических ссылок
(без них ссылка печатается в консоль сервера разработки)IPINFO_TOKEN для обогащения сетевого зонда данными ASN/VPN/проксиПолный аннотированный список см. в env.example.
| Путь | Назначение |
|---|---|
/ | Маркетинговая лендинг (hero с полярным сиянием, карточки возможностей, FAQ, CTA) |
/app | Детектор — список модулей + панель результатов + обзор |
/login | Отдельная страница входа (Google / email / API-ключ) |
/scans | История сохранённых сканов авторизованного пользователя |
/scans/[id] | Детали одного сохранённого скана |
/scans/analytics | Распределение / повторяемость / временная шкала / выбросы / сравнение |
/integrations | Управление API-ключами det_… (создание / отзыв / инструкция) |