
Detector de vazamento de privacidade do navegador — oito módulos de detecção, pontuação de risco e histórico por conta, tudo no seu navegador.
Detetor de vazamentos de privacidade do navegador — oito módulos de deteção, pontuação de risco e histórico por conta, tudo no seu navegador.
Construído com Verdent — um assistente de codificação agente. Cada módulo de deteção, o painel de análise, o fluxo de autenticação via chave de API, a interface bilíngue e a imagem Docker pronta para Kubernetes foram projetados e implementados em sessões de programação em par guiadas pelo Verdent.
Abra uma URL, clique em Executar tudo e, em poucos segundos, o Leakish informa o que
o seu navegador está a vazar sobre si e sobre a sua rede — via WebRTC, APIs de
impressão digital, DNS e uma sonda no servidor. Oito módulos independentes produzem cada um
um resultado tipado + sinais de risco, uma pontuação agregada (0–100) e um nível
(seguro / aviso / crítico).
Utilizadores com sessão iniciada podem guardar as análises no MySQL, navegar pelo histórico e abrir um painel
de análise que mostra gráficos de distribuição, repetição de hash de impressão digital, linha do tempo de IP / ASN,
análises fora do comum e uma comparação par a par. O resto (o detetor
propriamente dito) funciona sem conta — qualquer pessoa pode aceder a /app e executar uma análise.
| ID | Módulo | O que inspeciona |
|---|---|---|
network-probe | Sonda de saída de rede | IP público observado pelo servidor, ASN, país/região/cidade, flags de VPN/proxy/Tor/hosting, TLS/HTTP |
webrtc | WebRTC | IPv4 + IPv6 públicos via STUN, vazamentos RFC1918, candidatos .local ocultos por mDNS |
browser-fingerprint | Impressão digital do navegador | UA, ecrã, fuso horário, plugins, núcleos de CPU, memória do dispositivo, lista de idiomas, DNT, cookies |
canvas-fingerprint | Canvas / WebGL | Strings de renderização/vendedor 2D + WebGL, peculiaridades de renderização de texto, formatos de imagem suportados |
audio-fingerprint | Áudio | Taxa de amostragem do AudioContext, canais, latência, hash da saída do oscilador |
font-detection | Fontes | Mais de 40 sondas de fontes nomeadas via deteção por diferença de largura no Canvas |
dns | DNS | Acessibilidade DoH, sinal DNSSEC, geolocalização do resolvedor, heurísticas de vazamento DNS |
cdp-detection | Automação / headless | navigator.webdriver, temporização CDP, superfície de API exclusiva do Chromium, sondas de porta — confiança 0–1 |
Cada módulo é registado através de uma única interface tipada DetectionModule<T>
e executa isoladamente — um módulo que falhe não afeta os outros. O estado ativado
por módulo é persistido no localStorage com uma chave de versão, sobrevive a
atualizações da página e o botão Executar tudo percorre apenas o conjunto ativado.
/api/detect/network para ler o seu próprio IP
observado pelo servidor, ou (c) o módulo DNS comunica com https://dns.google/resolve.leakish.locale, controla <html lang>, meta-dados da página, todos os ecrãs,
todas as respostas de erro da API e o e-mail de início de sessão por link mágico.det_… na página
Integrações (SHA-256 armazenado, texto simples mostrado uma vez). Todos os
endpoints /api/detect/* aceitam quer um cookie de sessão quer uma chave Bearer, de modo
que a mesma análise pode ser guardada a partir de um CLI / trabalho CI./scans/analytics — gráficos de distribuição por
fuso horário / plataforma / idioma / ecrã / WebGL / ASN / país / contagem de fontes,
repetição de hash de impressão digital com grau de risco por tipo, linha do tempo de IP / ASN,
detetor de valores atípicos multieixo, comparação par a par com pontuação de similaridade 0–100.lib/risk/assess.ts produz
RiskSignals tipados com IDs estáveis (ex.: webrtc.public-ip-leak), resumos
por módulo e uma única pontuação agregada. Consciente da localidade via injeção de Messages.POST /api/detect/scans aceita um
cabeçalho Idempotency-Key, limita cada utilizador a 200 análises e limita a taxa de guardas
a 10/hora.node:22-alpine,
saída autónoma do Next.js, implementa no Kubernetes via o fluxo de trabalho em
.github/workflows/.Pré-requisitos: Node 22+ (qualquer versão 20+ funciona para desenvolvimento local), Yarn 1.x, uma instância MySQL em execução e (opcionalmente) um cliente Google OAuth.
yarn install
cp env.example .env.local # preencha pelo menos DATABASE_URL, NEXTAUTH_SECRET, IP_HASH_SALT
yarn prisma:generate
yarn db:push # provisiona as tabelas numa base de dados nova
yarn dev # http://localhost:3000
Ambiente mínimo para obter um início de sessão funcional:
DATABASE_URL — ex.: mysql://root:[email protected]:3306/detectNEXTAUTH_SECRET — openssl rand -base64 32NEXTAUTH_URL — http://localhost:3000 em desenvolvimentoIP_HASH_SALT — openssl rand -base64 32Opcional:
GOOGLE_CLIENT_ID / GOOGLE_CLIENT_SECRET para início de sessão com GoogleMAILGUN_API_KEY / MAILGUN_DOMAIN / EMAIL_FROM para entrega real de links mágicos
(sem estes, o link é impresso na consola do servidor de desenvolvimento)IPINFO_TOKEN para enriquecer a sonda de rede com dados de ASN / VPN / proxyConsulte env.example para a lista completa anotada.