# MasterClick Enterprise Security Architecture & Compliance Standard

> **Documento Oficial de Ciberseguridad, Protección de Datos y Blindaje de Infraestructura**  
> *Versión 2026.1 · Santiago, Chile · MasterClick SpA*

---

## 1. Transporte Seguro & Certificado SSL / TLS
- **Dominio Canónico:** `https://masterclick.cl` (todas las peticiones HTTP y subdominios son redirigidas permanentemente vía código 301 con HSTS forzado).
- **Cifrado en Tránsito:** TLS 1.3 y TLS 1.2 estricto. Algoritmos seguros (ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-RSA-AES256-GCM-SHA384).
- **HTTP Strict Transport Security (HSTS):**
  ```http
  Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
  ```
  Garantiza que ningún cliente web pueda degradar la conexión a texto plano ni sufrir ataques de tipo SSL-Strip o Man-in-the-Middle (MitM).

---

## 2. Cabeceras HTTP de Blindaje Defensivo (Hardening)
Desplegadas nativamente en el borde de red (`vercel.json` y servidores edge):
- **Content-Security-Policy (CSP):**
  Restringe la inyección de código cruzado (XSS). Solo se permite ejecución de scripts propios y orígenes de analítica autorizados:
  ```http
  Content-Security-Policy: default-src 'self' https:; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://connect.facebook.net; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' data: https://fonts.gstatic.com; img-src 'self' data: https: blob:; media-src 'self' https: blob:; connect-src 'self' https:; frame-src 'self' https://barberchopper.cl https://masterclick-nichos.vercel.app https://wa.me; frame-ancestors 'none';
  ```
- **X-Frame-Options:** `DENY` (Protección absoluta contra Clickjacking e inclusión en iframes no autorizados).
- **X-Content-Type-Options:** `nosniff` (Previene ataques de confusión de tipo MIME).
- **Referrer-Policy:** `strict-origin-when-cross-origin` (Protege metadatos de navegación de clientes).
- **Permissions-Policy:** `camera=(), microphone=(), geolocation=()` (Deshabilita acceso de hardware no solicitado).

---

## 3. Protección de Formularios & Prevención Anti-Bot
Todos los puntos de interacción, cotizadores y diagnósticos del sitio implementan defensas multicapa:
1. **Honeypot Oculto:**
   Campo trampa invisible (`website_hp`) inaccesible para humanos pero completado por bots automatizados. Toda solicitud con valor en este campo es descartada de inmediato sin notificación.
2. **Validación Temporal (Minimum Time-to-Submit):**
   Medición del timestamp (`form_loaded_at`). Formularios enviados en menos de 3.0 segundos desde su renderizado son clasificados como tráfico sintético y bloqueados.
3. **Rate Limiting & Throttling:**
   Limitación en cliente y servidor de 5 solicitudes por ventana de 10 minutos por dirección IP / huella digital.
4. **Sanitización Estricta de Entradas:**
   - Escape de caracteres HTML (`<`, `>`, `&`, `"`, `'`, `/`).
   - Validación regex de teléfonos chilenos: `^(\+?56\s?9\s?[0-9]{4}\s?[0-9]{4}|9[0-9]{8})$`.
   - Validación regex de email RFC 5322.

---

## 4. Protección de Rutas Administrativas & 2FA / TOTP (RFC 6238)
Para cualquier acceso administrativo (`/admin`, `/portal`, `/dashboard`):
1. **Autenticación en Dos Pasos (2FA Obligatorio):**
   - **Primer Factor:** Clave maestra de longitud superior a 16 caracteres de entropía alta.
   - **Segundo Factor (TOTP):** Código temporal de 6 dígitos basado en HMAC-SHA1 según RFC 6238 con ventana de 30 segundos, sincronizado con aplicaciones autenticadoras (Google Authenticator, Apple Passwords, 1Password).
2. **Protección contra Fuerza Bruta:**
   - Bloqueo preventivo de IP tras 5 intentos fallidos consecutivos durante 15 minutos.
3. **Expiración de Sesión Corta:**
   - Tokens de sesión JWT criptográficamente firmados con expiración estricta de 15 minutos de inactividad (`maxAge: 900s`).
4. **Ocultamiento en Rastreadores (`robots.txt`):**
   - Rutas `/admin`, `/api/`, `/data/`, `/.env*` declaradas con directiva `Disallow` y cabecera HTTP `X-Robots-Tag: noindex, nofollow, noarchive`.

---

## 5. Rotación de Claves y Respaldo Seguro
1. **Rotación de Secretos:**
   - El código ya no trae usuario, clave ni secreto TOTP de respaldo. Si faltan `ADMIN_USER`, `ADMIN_PASSWORD` o `ADMIN_TOTP_SECRET_HEX`, `/api/admin-auth` responde 503.
   - Hay que rotar esas tres variables en producción: una versión anterior del código incluía credenciales de respaldo y deben darse de baja.
   - También rotar `MP_ACCESS_TOKEN`, `MP_WEBHOOK_SECRET` y `DATABASE_URL` ante cualquier sospecha de compromiso.
2. **Respaldo y Continuidad Operacional:**
   - Copias de seguridad automáticas diarias de configuraciones y repositorios de código en múltiples regiones geográficas aisladas.
   - Respaldo inmutable con retención de 30 días para recuperación instantánea ante incidentes.

---

## 6. Procedimiento de Divulgación Responsable
Si descubres una vulnerabilidad de seguridad en los servicios de MasterClick, solicitamos notificarla a nuestro equipo de ingeniería:
- **Email:** `seguridad@masterclick.cl` / `contacto@masterclick.cl`
- **WhatsApp Oficial:** `+56 9 3218 6448`
- Tiempo de respuesta comprometido: < 12 horas hábiles.
