Analizador de cabeceras HTTP de seguridad
o pega las cabeceras manualmente

¿Qué hace esta herramienta?

Analiza las cabeceras HTTP de respuesta en busca de buenas prácticas de seguridad. La herramienta evalúa 10 cabeceras de seguridad críticas, detecta fugas de información y proporciona una puntuación ponderada con recomendaciones prácticas. Puedes pegar las cabeceras manualmente u obtenerlas desde una URL.

¿Qué cabeceras se analizan?

  • Content-Security-Policy (25 pts) — prevención de XSS e inyecciones

  • Strict-Transport-Security (15 pts) — forzado de HTTPS

  • X-Content-Type-Options (10 pts) — prevención de MIME sniffing

  • X-Frame-Options (8 pts) — protección contra clickjacking

  • Referrer-Policy (8 pts) — control de información del referrer

  • Permissions-Policy (8 pts) — restricciones de funcionalidades del navegador

  • Cross-Origin-Opener-Policy (8 pts) — aislamiento del contexto de navegación

  • Cross-Origin-Resource-Policy (8 pts) — control de carga de recursos

  • Cross-Origin-Embedder-Policy (7 pts) — control de incrustación

  • X-XSS-Protection (3 pts) — filtro XSS legacy (debe estar desactivado)

Además, la herramienta comprueba fugas de información a través de las cabeceras Server, X-Powered-By y X-AspNet-Version.

Escala de calificación

  • A+ (90-100) — Postura de seguridad excelente

  • A (80-89) — Sólida, con mejoras menores posibles

  • B (70-79) — Buena, faltan algunas cabeceras

  • C (50-69) — Aceptable, faltan varias cabeceras importantes

  • D (30-49) — Deficiente, con carencias importantes

  • F (0-29) — Crítica, faltan la mayoría de cabeceras

¿Cómo se usa?

  1. Introduce una URL y pulsa Obtener, o pega las cabeceras desde DevTools del navegador o curl

  2. Pulsa Analizar cabeceras para ver la puntuación de seguridad y las recomendaciones

  3. Corrige las cabeceras que falten en la configuración de tu servidor y vuelve a analizar

¿Son privados mis datos?

Todo el análisis se realiza íntegramente en tu navegador: las cabeceras del cuadro de texto se analizan, se puntúan y se califican en tu propia máquina, y no se envía nada de ellas a ninguna parte. El botón Obtener es la excepción. CORS impide que un navegador lea las cabeceras de respuesta de otro sitio, así que la URL que indiques va a un pequeño proxy de este mismo dominio que las pide por ti. Ese proxy tiene el registro de acceso desactivado, así que la URL que inspeccionas no queda escrita junto a tu dirección, y el sitio inspeccionado ve este servidor y no a ti. Si prefieres que ni siquiera esa petición salga, pega las cabeceras capturadas con curl -sI en lugar de usar Obtener.

Referencia de comandos Linux

Puedes inspeccionar las cabeceras HTTP desde la terminal con estas herramientas:

curl — Solo cabeceras

curl -sI https://example.com
HTTP/2 200date: Thu, 12 Feb 2026 07:37:48 GMTcontent-type: text/htmlcf-ray: 9cca6c3e7e52ddef-MADlast-modified: Wed, 11 Feb 2026 23:52:30 GMTaccept-ranges: bytescf-cache-status: HITserver: cloudflare

curl — Filtrar cabeceras de seguridad

curl -sI https://jmrp.io | grep -iE '^(strict-transport|x-content-type|x-frame|referrer|cross-origin|permissions|content-security)'
strict-transport-security: max-age=63072000; includeSubDomains; preloadx-content-type-options: nosniffx-frame-options: DENYreferrer-policy: strict-origin-when-cross-origincross-origin-embedder-policy: require-corpcross-origin-opener-policy: same-origincross-origin-resource-policy: same-origincontent-security-policy: default-src 'self'; script-src 'self' ...

curl — Verbose (TLS + cabeceras)

curl -sv https://example.com -o /dev/null 2>&1 | grep '< '
< HTTP/2 200< date: Thu, 12 Feb 2026 07:37:48 GMT< content-type: text/html< server: cloudflare

wget — Modo spider

wget -S --spider https://example.com 2>&1 | grep '^\s'
HTTP/1.1 200 OKDate: Thu, 12 Feb 2026 07:37:52 GMTContent-Type: text/htmlcf-cache-status: HITserver: cloudflare

Comprobar una cabecera específica

# Comprobar si HSTS está presente
curl -sI https://jmrp.io | grep -i strict-transport
# Comprobar la política CSP
curl -sI https://jmrp.io | grep -i content-security-policy
strict-transport-security: max-age=63072000; includeSubDomains; preloadcontent-security-policy: default-src 'self'; script-src 'self' ...

Comparar varios sitios

for site in example.com jmrp.io github.com; do
echo "=== $site ==="
curl -sI "https://$site" | grep -ci '^\(strict-transport\|x-content-type\|x-frame\|referrer-policy\|permissions-policy\|content-security-policy\|cross-origin\)'
echo "security headers found"
done
=== example.com ===0 security headers found=== jmrp.io ===9 security headers found=== github.com ===5 security headers found

Más información

Consulta

Implementar CSP en Nginx

para una guía detallada sobre la configuración de cabeceras de seguridad.

Preguntas frecuentes

¿Qué cabeceras HTTP de seguridad comprueba esta herramienta?

Evalúa 10 cabeceras críticas, entre ellas Content-Security-Policy, Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy y las tres políticas Cross-Origin. También detecta fugas de información en las cabeceras "Server", "X-Powered-By" y "X-AspNet-Version".

¿Cómo se calcula la puntuación de seguridad?

Cada cabecera tiene un peso según su impacto, siendo Content-Security-Policy la de mayor valor (25 puntos) y X-XSS-Protection la menor (3 puntos). El total ponderado se traduce en una calificación de A+ (90-100) hasta F (0-29).

¿Por qué faltan algunas cabeceras al obtenerlas desde una URL?

Obtener pide las cabeceras al proxy propio de este sitio, y ese proxy hace una petición HEAD con su propio User-Agent y sin cookies. Las cabeceras que un servidor solo envía en GET, solo a una sesión iniciada o tras negociar el contenido no aparecerán, y si el sitio está detrás de un CDN verás las cabeceras del borde y no las del origen. Para una captura exacta, pega la salida de curl -sI o las cabeceras de respuesta copiadas desde DevTools del navegador.

¿Se envían mis datos a un servidor al analizar las cabeceras?

El análisis nunca sale de tu navegador: lo que haya en el cuadro de texto se analiza, se puntúa y se califica en tu propia máquina. El botón Obtener es la excepción, porque un navegador no tiene permiso para leer las cabeceras de respuesta de otro sitio —CORS lo prohíbe—, así que la URL que indiques va a un pequeño proxy de este mismo dominio, que pide las cabeceras y te las devuelve. Ese proxy tiene el registro de acceso desactivado, así que la URL que inspeccionas no queda escrita junto a tu dirección, y el sitio inspeccionado ve este servidor y no a ti. Si pegas las cabeceras en vez de obtenerlas, no se envía nada.

¿Debo configurar todavía X-XSS-Protection?

No. X-XSS-Protection es un filtro legacy que los navegadores modernos ignoran o que puede introducir vulnerabilidades; el valor recomendado es "0" para desactivarlo, y una Content-Security-Policy sólida es la defensa adecuada contra XSS.