Obtener una A en un escáner de cabeceras
Securityheaders.com o Mozilla Observatory señalan cabeceras ausentes: genera la plantilla Equilibrada, añádela a tu bloque server de Nginx y vuelve a analizar.
Configura las cabeceras HTTP de seguridad a partir de una plantilla equilibrada, estricta o compatible: HSTS (max-age, includeSubDomains, preload), X-Content-Type-Options, Referrer-Policy, Permissions-Policy, COOP, CORP, COEP y X-Frame-Options, con salida en bruto, Nginx y Apache y avisos de configuración.
Una directiva por línea o separada por comas.
Este generador produce las cabeceras HTTP de seguridad que se esperan de un sitio en producción: HSTS, nosniff, Referrer-Policy, Permissions-Policy, aislamiento cross-origin y protección frente a iframes. Está pensado para desarrolladores y administradores que quieren una configuración de Nginx o Apache coherente y explicada, en lugar de un copia y pega al azar.
Cada cabecera cubre un riesgo concreto. `Strict-Transport-Security: max-age=31536000; includeSubDomains` (RFC 6797) obliga al navegador a usar solo HTTPS durante un año; la lista preload de hstspreload.org exige además al menos 31536000 segundos, includeSubDomains y preload. `X-Content-Type-Options: nosniff` impide que el navegador adivine el tipo MIME de una respuesta. `Referrer-Policy: strict-origin-when-cross-origin` solo envía el origen a otros sitios. `Permissions-Policy: camera=(), microphone=(), geolocation=()` desactiva esas API para la página y sus iframes.
Las cabeceras de aislamiento funcionan juntas: `Cross-Origin-Opener-Policy: same-origin` separa tu ventana de las ventanas emergentes de otros orígenes, `Cross-Origin-Resource-Policy` limita quién puede cargar tus recursos y `Cross-Origin-Embedder-Policy: require-corp` (o credentialless) solo acepta recursos que lo permitan explícitamente; COOP + COEP hacen que la página esté «cross-origin isolated», requisito de SharedArrayBuffer. X-Frame-Options (DENY o SAMEORIGIN) bloquea la inserción en iframes contra el clickjacking. La herramienta genera estas cabeceras en texto plano, en directivas Nginx `add_header … always;` y en líneas Apache `Header always set …`, y avisa de un HSTS inferior a 180 días, preload sin includeSubDomains, una Referrer-Policy demasiado permisiva o la falta de nosniff o de protección frente a iframes.
Parte de Equilibrada (cargada por defecto), Estricta o Compatible: todos los campos se rellenan con sus valores.
Configura HSTS (activación, max-age en segundos, subdominios, preload), nosniff, Referrer-Policy, X-Frame-Options, COOP, CORP y COEP, y escribe las directivas de Permissions-Policy, una por línea o separadas por comas.
Pulsa «Generar cabeceras», revisa los avisos y copia o exporta la versión en bruto, Nginx o Apache.
Securityheaders.com o Mozilla Observatory señalan cabeceras ausentes: genera la plantilla Equilibrada, añádela a tu bloque server de Nginx y vuelve a analizar.
Comprueba que max-age llega al menos a un año y que includeSubDomains y preload están presentes antes de enviar el dominio en hstspreload.org.
La plantilla Estricta combina COOP same-origin y COEP require-corp, las dos cabeceras que necesita una página para estar cross-origin isolated.
Entrada
Activar HSTS: sí; Duración max-age (segundos): 31536000; Incluir subdominios: sí; Solicitar preload: no; Activar X-Content-Type-Options: nosniff: sí; Referrer-Policy: strict-origin-when-cross-origin; X-Frame-Options: DENYResultado
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
X-Frame-Options: DENY
Advertencias: ningunaLa base recomendada por OWASP incluye Strict-Transport-Security, Content-Security-Policy, X-Content-Type-Options: nosniff, Referrer-Policy, protección frente a iframes (X-Frame-Options o frame-ancestors) y, según el caso, Permissions-Policy y las cabeceras COOP/CORP/COEP. La CSP se crea aparte con el generador de CSP.
Un año (31536000 segundos) es el valor habitual y el mínimo para la lista preload; a menudo se recomiendan dos años (63072000). Durante una migración, empieza con poco y aumenta poco a poco, porque el navegador recuerda la regla durante todo el periodo indicado.
No. El filtro XSS de los navegadores se ha eliminado y OWASP recomienda no enviar esta cabecera (o ponerla a 0), porque podía introducir vulnerabilidades. La protección moderna frente a XSS se basa en una Content Security Policy, por eso la herramienta no la ofrece.
DENY prohíbe cualquier inserción de tus páginas en un iframe; SAMEORIGIN solo la permite desde tu propio origen, útil para un panel o un editor que se muestra a sí mismo en un iframe. ALLOW-FROM está obsoleto: para autorizar un dominio concreto, usa frame-ancestors en la CSP.
Cross-Origin-Embedder-Policy: require-corp rechaza cualquier recurso de otro origen que no envíe Cross-Origin-Resource-Policy o cabeceras CORS. Pide al proveedor que las añada, carga el recurso con crossorigin o usa el valor credentialless, más tolerante.
En Nginx, pega las líneas `add_header … always;` en el bloque server (always las envía también en las respuestas de error) y recarga con `nginx -t && nginx -s reload`. En Apache, activa mod_headers y coloca las líneas `Header always set …` en el VirtualHost o en un .htaccess.
Herramientas relacionadas
Herramientas similares o complementarias a esta.
Crea una Content Security Policy directiva a directiva, con cabecera HTTP, etiqueta meta y avisos.
Analiza encabezados HTTP para revisar la seguridad, la caché, CORS y el comportamiento de las cookies.
Genera reglas 301 para Apache, Nginx, Netlify o Vercel a partir de un mapping de URL.
Aprende a implantar una CSP de forma progresiva, sus directivas principales, Report-Only, nonces y errores frecuentes.
Comprende HSTS, CSP, X-Content-Type-Options, Referrer-Policy y Permissions-Policy y cómo verificar las cabeceras realmente enviadas.
Comprende las capas que protegen un sitio web: HTTPS, cabeceras HTTP, CSP, SRI, autenticación, contraseñas e integridad.
Comprende por qué importan longitud y unicidad, cómo gestores, MFA y passkeys complementan las contraseñas y cómo almacenarlas en servidor.