Add full project structure: backend API + frontend

- Move repo to project root to include both public/ and api/
- Add .gitignore excluding node_modules and .env
- Include API routes (erase, gmail_oauth), services (mailer), and config

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
hacklab 2026-04-07 12:09:54 +02:00
parent 36b918b95d
commit 614d5af397
20 changed files with 2419 additions and 0 deletions

509
public/tipos.html Normal file
View file

@ -0,0 +1,509 @@
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>RESETEA.NET · Tipos de información</title>
<meta name="description"
content="Mapa de tipos de información personal y cómo la almacenan compañías, data brokers e indexadores. Guía práctica para entender exposición y superficies de ataque.">
<link rel="stylesheet" href="index.css">
</head>
<body>
<header class="topbar">
<div class="container topbar-inner">
<div class="brand">
<div class="brand-logo">R</div>
<div class="brand-text">
<div class="brand-name">RESETEA<span>.NET</span></div>
<div class="brand-tag">Privacidad sin custodios</div>
</div>
</div>
<nav class="nav" aria-label="Navegación principal">
<a class="nav-btn nav-btn--primary" href="tipos.html">Tipos de información</a>
<a class="nav-btn" href="concienciacion.html">Concienciación</a>
<a class="nav-btn" href="index.html">Resetea</a>
<a class="nav-btn" href="egosurfing.html">Egosurfing</a>
</nav>
</div>
</header>
<main>
<section class="hero">
<div class="container hero-inner">
<div class="hero-text">
<h1>Tipos de información personal<br>y dónde se te “escapa”.</h1>
<p>
Antes de borrar, hay que entender qué datos existen y cómo se conectan.
Este mapa te ayuda a identificar tu exposición: qué datos son “identificadores”,
cuáles son “atributos”, cuáles son “comportamiento” y cómo terminan en compañías,
publicidad, brokers y registros públicos.
</p>
<div class="hero-actions">
<a class="btn primary" href="#mapa">Ver el mapa</a>
<a class="btn ghost" href="#almacenamiento">Cómo lo guardan</a>
</div>
<div class="notice">
<strong>Enfoque:</strong><br>
Inspirado en la metodología de “empezar de cero” y reducir superficies de exposición:
identifica categorías, fuentes y vínculos, y luego actúa por prioridad.
</div>
</div>
<div class="hero-card" aria-label="Resumen práctico">
<div class="stats">
<div class="stat">
<div class="stat-num">3</div>
<div class="stat-label">Capas de datos</div>
</div>
<div class="stat">
<div class="stat-num">8+</div>
<div class="stat-label">Fuentes típicas</div>
</div>
<div class="stat">
<div class="stat-num">1</div>
<div class="stat-label">Objetivo</div>
</div>
</div>
<ul class="steps">
<li><span>1</span> Identificadores (quién eres)</li>
<li><span>2</span> Atributos (cómo eres)</li>
<li><span>3</span> Actividad (qué haces)</li>
</ul>
</div>
</div>
</section>
<section id="mapa" class="panel">
<div class="container">
<h2>Mapa de tipos de información personal</h2>
<p class="section-desc">
No todos los datos “pesan” igual. Los <strong>identificadores</strong> permiten localizarte;
los <strong>atributos</strong> te describen; la <strong>actividad</strong> te perfila.
Los ecosistemas publicitarios y los data brokers suelen unirlo todo por correlación.
</p>
<div class="grid">
<div class="group">
<h3>1) Identificadores directos</h3>
<div class="item">
<label><input type="checkbox"> Nombre completo y variantes</label>
<div class="actions">
<a href="#fuentes">Fuentes típicas</a>
<a href="#prioridad">Prioridad</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Emails (actuales y antiguos)</label>
<div class="actions">
<a href="#almacenamiento">Cómo lo guardan</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Teléfonos (móvil/fijo/VoIP)</label>
<div class="actions">
<a href="#fuentes">Fuentes típicas</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Direcciones (actuales y previas)</label>
<div class="actions">
<a href="#fuentes">Fuentes típicas</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Alias/nicks recurrentes</label>
<div class="actions">
<a href="#egos">Relación con egosurfing</a>
<a href="#acciones">Acciones</a>
</div>
</div>
</div>
<div class="group">
<h3>2) Identificadores “técnicos”</h3>
<div class="item">
<label><input type="checkbox"> IP (pública), rangos y patrones</label>
<div class="actions">
<a href="#almacenamiento">Retención y logs</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Dispositivo (ID de publicidad, fingerprint)</label>
<div class="actions">
<a href="#almacenamiento">SDKs / trackers</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Cookies / sesiones / tokens</label>
<div class="actions">
<a href="#almacenamiento">1st/3rd party</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Metadatos (fotos, PDFs, documentos)</label>
<div class="actions">
<a href="#fuentes">Fuentes típicas</a>
<a href="#acciones">Acciones</a>
</div>
</div>
</div>
<div class="group">
<h3>3) Atributos personales</h3>
<div class="item">
<label><input type="checkbox"> Fecha de nacimiento / edad aproximada</label>
<div class="actions">
<a href="#almacenamiento">Correlación</a>
<a href="#prioridad">Prioridad</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Trabajo / cargo / historial laboral</label>
<div class="actions">
<a href="#fuentes">Fuentes típicas</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Educación / centros / promociones</label>
<div class="actions">
<a href="#fuentes">Fuentes típicas</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Propiedad (vivienda/vehículo), registros y anuncios</label>
<div class="actions">
<a href="#fuentes">Registros & anuncios</a>
<a href="#prioridad">Prioridad</a>
</div>
</div>
</div>
<div class="group">
<h3>4) Contactos y “grafo social”</h3>
<div class="item">
<label><input type="checkbox"> Familia / convivientes / relaciones públicas</label>
<div class="actions">
<a href="#almacenamiento">Enlaces por similitud</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Amigos, compañeros, “etiquetados”, fotos grupales</label>
<div class="actions">
<a href="#fuentes">Redes sociales</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Agenda subida (contact discovery)</label>
<div class="actions">
<a href="#almacenamiento">Hashing vs matching</a>
<a href="#acciones">Acciones</a>
</div>
</div>
</div>
<div class="group">
<h3>5) Actividad y comportamiento</h3>
<div class="item">
<label><input type="checkbox"> Historial de navegación / intereses inferidos</label>
<div class="actions">
<a href="#almacenamiento">AdTech</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Compras, suscripciones, tickets y reservas</label>
<div class="actions">
<a href="#fuentes">E-commerce</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Ubicación (GPS, Wi-Fi, torres, check-ins)</label>
<div class="actions">
<a href="#almacenamiento">Retención</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Contenido publicado (posts, comentarios, reseñas)</label>
<div class="actions">
<a href="#egos">Egosurfing</a>
<a href="#acciones">Acciones</a>
</div>
</div>
</div>
<div class="group">
<h3>6) Datos “sensibles” (tratamiento especial)</h3>
<div class="item">
<label><input type="checkbox"> Salud, diagnósticos, seguros, hábitos</label>
<div class="actions">
<a href="#prioridad">Prioridad alta</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Biométricos (cara/huella/voz) y modelos</label>
<div class="actions">
<a href="#almacenamiento">Plantillas biométricas</a>
<a href="#acciones">Acciones</a>
</div>
</div>
<div class="item">
<label><input type="checkbox"> Creencias/ideología/sindical, etc. (si se publica)</label>
<div class="actions">
<a href="#prioridad">Prioridad alta</a>
<a href="#acciones">Acciones</a>
</div>
</div>
</div>
</div>
</div>
</section>
<section id="almacenamiento" class="info alt">
<div class="container">
<h2>Cómo lo guardan y conectan las compañías</h2>
<p>
Lo importante no es solo “qué dato”, sino <strong>qué sistema lo almacena</strong> y
<strong>qué identificador lo une</strong> con el resto (email, teléfono, cookie, device ID, etc.).
</p>
<div class="grid" style="margin-top: 1.5rem;">
<div class="group">
<h3>Primera parte (1st-party)</h3>
<p class="section-desc">
Datos que entregas a un servicio directamente (cuentas, compras, soporte).
Suelen estar en CRMs, sistemas de facturación, logs y backups.
</p>
<div class="item"><label><input type="checkbox"> CRM / soporte (tickets, chats, grabaciones)</label></div>
<div class="item"><label><input type="checkbox"> Facturación (direcciones, pagos, historial)</label></div>
<div class="item"><label><input type="checkbox"> Logs (IP, timestamps, user-agent)</label></div>
<div class="item"><label><input type="checkbox"> Backups y réplicas (borrado no inmediato)</label></div>
</div>
<div class="group">
<h3>Terceros (3rd-party)</h3>
<p class="section-desc">
Trackers, analítica, publicidad, SDKs en apps, CDNs y “social logins”.
Pueden correlacionar actividad entre sitios.
</p>
<div class="item"><label><input type="checkbox"> Cookies 3rd-party / píxeles / tags</label></div>
<div class="item"><label><input type="checkbox"> SDKs de móvil (ID publicidad, telemetría)</label></div>
<div class="item"><label><input type="checkbox"> Fingerprinting (señales del navegador)</label></div>
<div class="item"><label><input type="checkbox"> Enriquecimiento (email→perfil inferido)</label></div>
</div>
<div class="group">
<h3>Data brokers y agregadores</h3>
<p class="section-desc">
Compran, cruzan y re-venden datos. Su fuerza está en correlación:
email/teléfono/dirección + registros + actividad.
</p>
<div class="item"><label><input type="checkbox"> Compras de listas (marketing)</label></div>
<div class="item"><label><input type="checkbox"> Scraping (perfiles públicos, reseñas)</label></div>
<div class="item"><label><input type="checkbox"> Registros públicos (según jurisdicción)</label></div>
<div class="item"><label><input type="checkbox"> Brechas/filtraciones (datos históricos)</label></div>
</div>
</div>
</div>
</section>
<section id="fuentes" class="info">
<div class="container">
<h2>Fuentes típicas de exposición (las “tuberías”)</h2>
<p>
Para priorizar, piensa en tuberías: donde más se filtra, más impacto tiene el control.
Estas son fuentes comunes donde se “pobló” tu huella:
</p>
<div class="grid" style="margin-top: 1.5rem;">
<div class="group">
<h3>Registros y trámites</h3>
<p class="section-desc">
Registros públicos, boletines, licencias, directorios profesionales,
anuncios legales, listados administrativos (depende del país).
</p>
</div>
<div class="group">
<h3>Plataformas y publicaciones</h3>
<p class="section-desc">
Redes sociales, foros, comentarios, reseñas, repositorios, perfiles públicos,
páginas antiguas, “sobre mí”, biografías.
</p>
</div>
<div class="group">
<h3>Economía cotidiana</h3>
<p class="section-desc">
Bancos/seguros (muy regulado), e-commerce, envíos,
fidelización, tickets, reservas, soporte post-venta.
</p>
</div>
<div class="group">
<h3>Telecos y conectividad</h3>
<p class="section-desc">
Proveedores de internet/móvil, Wi-Fi, routers, logs, servicios de mensajería,
servicios en la nube y autenticación.
</p>
</div>
<div class="group">
<h3>Móvil y apps</h3>
<p class="section-desc">
Permisos, SDKs, analítica, ubicaciones, fotos con metadatos,
sincronización de contactos y “descubrir amigos”.
</p>
</div>
<div class="group">
<h3>Filtraciones</h3>
<p class="section-desc">
Brechas de datos: emails, teléfonos, direcciones, passwords,
preguntas de seguridad. Impactan durante años.
</p>
</div>
</div>
</div>
</section>
<section id="prioridad" class="info alt">
<div class="container">
<h2>Prioridad práctica (qué tocar primero)</h2>
<p>
Una estrategia simple: empieza por los <strong>identificadores de enlace</strong>
(email/teléfono/dirección) y por lo que “propaga” a terceros (trackers, brokers, publicaciones públicas).
</p>
<div class="grid" style="margin-top: 1.5rem;">
<div class="group">
<h3>Alta prioridad</h3>
<p class="section-desc">
Email/teléfono, direcciones históricas, perfiles públicos, fotos con metadatos,
directorios/brokers, páginas indexadas con tu nombre.
</p>
</div>
<div class="group">
<h3>Media prioridad</h3>
<p class="section-desc">
Historial de compras y suscripciones, cuentas secundarias,
contenidos dispersos (comentarios/foros), alias repetidos.
</p>
</div>
<div class="group">
<h3>Baja prioridad (pero no ignorar)</h3>
<p class="section-desc">
Señales técnicas menores o aisladas sin correlación clara.
Suelen resolverse con higiene de navegador/dispositivo.
</p>
</div>
</div>
</div>
</section>
<section id="acciones" class="info">
<div class="container">
<h2>Acciones recomendadas (sin entrar aún en automatización)</h2>
<p>
Esto es el puente hacia el módulo “Resetea”. Aquí solo fijamos las acciones típicas por categoría.
</p>
<div class="grid" style="margin-top: 1.5rem;">
<div class="group">
<h3>Identificadores</h3>
<div class="item"><label><input type="checkbox"> Unificar/rotar emails (según caso de uso)</label></div>
<div class="item"><label><input type="checkbox"> Revisar teléfonos publicados y directorios</label></div>
<div class="item"><label><input type="checkbox"> Solicitudes de supresión (GDPR) donde aplique</label></div>
</div>
<div class="group">
<h3>Publicaciones e indexación</h3>
<div class="item"><label><input type="checkbox"> Retirar en origen (web/foro) primero</label></div>
<div class="item"><label><input type="checkbox"> Desindexar (formularios buscador) como refuerzo</label></div>
<div class="item"><label><input type="checkbox"> Reducir “señales” (perfiles públicos/SEO personal)</label></div>
</div>
<div class="group">
<h3>Dispositivos y trackers</h3>
<div class="item"><label><input type="checkbox"> Revisar permisos de apps y SDKs</label></div>
<div class="item"><label><input type="checkbox"> Reducir tracking (navegador, bloqueadores, etc.)</label></div>
<div class="item"><label><input type="checkbox"> Limpiar metadatos en documentos e imágenes</label></div>
</div>
</div>
</div>
</section>
<section id="egos" class="info alt">
<div class="container">
<h2>Relación con “egosurfing”</h2>
<p>
“Egosurfing” no es vanidad: es control de daños. Buscar tus identificadores
(nombre, alias, email, teléfono) revela qué datos están indexados, replicados
o enriquecidos por terceros.
</p>
<p style="margin-top: 0.8rem;">
Cuando tengas listo el módulo de egosurfing, lo usarás como:
<strong>diagnóstico</strong> (antes), <strong>verificación</strong> (durante)
y <strong>auditoría</strong> (después).
</p>
</div>
</section>
</main>
<footer class="footer">
<div class="container">
<p>
RESETEA.NET · Tipos de información · Estático · Sin cookies
</p>
</div>
</footer>
</body>
</html>