Ir al contenido principal
Bethemesh

Generador de cabeceras de seguridad

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.

  • Portapapeles

Integrar este widget

Personaliza el aspecto, comprueba la vista previa y copia el código.

Vista previa

Tipo de código de integración

Código para copiar

Se adapta a tu página y Bethemesh ajusta su tamaño automáticamente.

Plantilla

Strict-Transport-Security (HSTS)

Activar X-Content-Type-Options: nosniff

Referrer-Policy

Una directiva por línea o separada por comas.

Cabeceras HTTP

Cabeceras HTTP

Configuración Nginx

Configuración Apache

¿Te ha resultado útil esta herramienta?

¿Cómo funciona esta herramienta?

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.

Cómo utilizar esta herramienta

  1. Elige una plantilla

    Parte de Equilibrada (cargada por defecto), Estricta o Compatible: todos los campos se rellenan con sus valores.

  2. Ajusta cada cabecera

    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.

  3. Genera y copia

    Pulsa «Generar cabeceras», revisa los avisos y copia o exporta la versión en bruto, Nginx o Apache.

Casos de uso

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.

Preparar la inscripción en la lista HSTS preload

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.

Activar SharedArrayBuffer o hilos de WebAssembly

La plantilla Estricta combina COOP same-origin y COEP require-corp, las dos cabeceras que necesita una página para estar cross-origin isolated.

Ejemplos

Cuatro cabeceras HTTP de protección

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: DENY

Resultado

Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
X-Frame-Options: DENY
Advertencias: ninguna

Consejos y buenas prácticas

  • En Nginx, un `add_header` dentro de un bloque location anula todos los heredados del bloque server: repite las cabeceras de seguridad en cada location que defina las suyas.
  • Empieza HSTS con un max-age corto (300 s y luego una semana) si algunos subdominios aún no usan HTTPS: un valor largo o el preload son difíciles de revertir.
  • Activa COEP require-corp solo después de revisar tus recursos de terceros (imágenes, fuentes, vídeos): los que no envíen CORP ni CORS quedarán bloqueados.

Fuentes y referencias

Preguntas frecuentes

¿Qué cabeceras de seguridad HTTP debe tener un sitio web?

La 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.

¿Qué max-age usar en HSTS?

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.

¿Sigue haciendo falta X-XSS-Protection?

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.

¿X-Frame-Options DENY o SAMEORIGIN?

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.

¿Por qué se bloquean mis imágenes o fuentes al añadir COEP?

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.

¿Cómo añado estas cabeceras en Nginx o Apache?

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.

Herramientas similares

Crea una Content Security Policy directiva a directiva, con cabecera HTTP, etiqueta meta y avisos.

Seguridad y privacidadUsar esta herramienta

Analiza encabezados HTTP para revisar la seguridad, la caché, CORS y el comportamiento de las cookies.

Seguridad y privacidadUsar esta herramienta