🛡️ Headers de Seguridad HTTP — Hardening Web & Estándar OWASP
Defensa en Profundidad a Nivel de Protocolo HTTP/HTTPS
Los Headers de Seguridad HTTP (cabeceras de respuesta HTTP) son directivas criptográficas y de política enviadas por el servidor web o CDN (Cloudflare, Vercel, Caddy, Nginx) al navegador del cliente. Su propósito es restringir qué recursos pueden ejecutarse, exigir cifrado de transporte estricto, aislar procesos en memoria y bloquear vectores de ataque críticos como Cross-Site Scripting (XSS), Clickjacking, MIME-Sniffing, SSL Stripping (MitM) y fugas de canal lateral (Spectre / XS-Leaks).
📜 Estándar de Referencia:OWASP HTTP Security Headers Cheat Sheet & Mozilla Observatory (Grado A+)
Define la lista blanca estricta de orígenes permitidos para scripts, estilos, fuentes, imágenes, conexiones fetch/WebSocket y marcos embebidos.
Strict-Transport-Security
max-age=63072000; includeSubDomains; preload
Man-in-the-Middle (MitM), SSL Stripping
Obliga al navegador a conectarse exclusivamente por HTTPS durante 2 años (63072000 s), incluyendo subdominios y lista HSTS Preload integrada en los navegadores.
X-Content-Type-Options
nosniff
MIME Confusion / Drive-by Download
Impide que el navegador “adivine” el tipo de contenido de un archivo e intente ejecutar una imagen o texto subido por un usuario como si fuera JavaScript o HTML.
Referrer-Policy
strict-origin-when-cross-origin
Fuga de URLs y tokens en cabeceras Referer
Envía la ruta completa en peticiones del mismo origen, pero solo envía el dominio raíz (origin) al navegar a terceros por HTTPS, y nada si baja a HTTP.
Desactiva explícitamente el acceso del DOM y de iframes anidados a sensores sensibles (cámara, micrófono, GPS, WebUSB) que la aplicación no necesita.
Cross-Origin-Opener-Policy
same-origin
XS-Leaks / Ataques de ventana cruzada
Aísla el grupo de contexto de navegación para que ventanas emergentes externas (window.open) no puedan obtener referencias a window.opener.
Cross-Origin-Embedder-Policy
require-corp(o credentialless)
Spectre / Side-Channel Memory Leaks
Exige que todo recurso cruzado autorice su carga mediante CORS/CORP. Junto con COOP, habilita el aislamiento necesario para usar SharedArrayBuffer (WASM).
Cross-Origin-Resource-Policy
same-origin(o same-site)
Robo de recursos estáticos / Hotlinking
Indica al navegador que bloquee la lectura de imágenes, scripts o JSON desde sitios externos no autorizados.
X-Frame-Options
DENY(o SAMEORIGIN)
Clickjacking (Fallback legacy)
Impide que la página sea incrustada dentro de un <frame> o <iframe> malicioso. Aunque frame-ancestors de CSP lo reemplaza, se mantiene por compatibilidad total.
⚠️ Cabeceras Deprecadas o Peligrosas (Qué NO Usar)
Advertencia Crítica de OWASP: Cabeceras Obsoletas
X-XSS-Protection:Desaconsejada oficialmente. Los filtros XSS antiguos integrados en navegadores fueron retirados porque podían ser explotados para provocar vulnerabilidades de fuga de información entre orígenes. La recomendación actual de OWASP es omitirla o forzar su apagado explícito:
X-XSS-Protection: 0
Public-Key-Pins (HPKP):Completamente eliminada del estándar web. Un error en la rotación de llaves criptográficas podía dejar el dominio inaccesible de forma permanente (brick) para los visitantes. En su lugar se utiliza Expect-CT (hoy automatizado por Certificate Transparency) y registros DNS CAA.
Server y X-Powered-By: No son cabeceras de seguridad, sino de exposición de huella digital (Fingerprinting). Siempre oculta versiones exactas como X-Powered-By: Express o Server: nginx/1.24.0.