Verificador Cabeceras HTTP — Seguridad, Base OWASP y Detección de Protocolo
Las cabeceras HTTP de respuesta llevan metadatos sobre la respuesta del servidor: tipo de contenido, reglas de caché, políticas de seguridad y negociación de protocolo. La especificación principal actual de semántica HTTP es el RFC 9110 (Fielding, Nottingham y Reschke, junio 2022), un Internet Standard (STD 97) que deja obsoletos los RFC 7231-7235 y actualiza partes del RFC 7230 (la mensajería HTTP/1.1 está dividida en el RFC 9112). El cacheo lo gobierna el RFC 9111. Las cabeceras de seguridad forman una capa de defensa en profundidad: Strict-Transport-Security (HSTS) según el RFC 6797 (Hodges, Jackson y Barth, 19 de noviembre de 2012) fuerza HTTPS y previene ataques de downgrade; Content-Security-Policy Nivel 3 (W3C Working Draft, última revisión abril 2026) restringe qué scripts, estilos, frames y conexiones puede cargar la página; Permissions-Policy (W3C Working Draft) controla el acceso a APIs sensibles del navegador como cámara, micrófono y geolocalización, reemplazando a la Feature-Policy desfasada tras la división de 2020 en Permissions-Policy y Document-Policy; X-Frame-Options (RFC 7034 Ross y Gondrom, octubre 2013) queda obsoleta a favor de CSP frame-ancestors. El proyecto OWASP Secure Headers recomienda una base que incluye HSTS con includeSubDomains + preload, CSP sin unsafe-inline, X-Content-Type-Options: nosniff y Referrer-Policy: strict-origin-when-cross-origin. Esta herramienta hace fetch a la URL, muestra cada cabecera de respuesta y marca las cabeceras de seguridad ausentes contra esa base.
Cómo inspeccionar cabeceras HTTP
- Introduce una URL. La herramienta emite una petición HEAD (o recurre a GET con Range: bytes=0-0 si HEAD es rechazado con 405).
- Todas las cabeceras de respuesta se muestran con valores analizados; las cabeceras de seguridad se puntúan contra la base OWASP Secure Headers.
- Las cabeceras de seguridad ausentes (CSP, HSTS, X-Content-Type-Options, Permissions-Policy) se marcan con el valor de directiva recomendado.
- Las redirecciones se trazan — cada salto muestra código de estado, target Location y sus propias cabeceras de respuesta según RFC 9110.
Casos de uso comunes
- Auditar cabeceras de seguridad (HSTS, CSP, Permissions-Policy) antes de un despliegue a producción — caza regresiones cuando la config nginx/CDN deriva.
- Verificar que Cloudflare u otro CDN realmente sirve tu contenido (cf-ray, server, x-cache visibles).
- Depurar problemas de caché inspeccionando Cache-Control, Age, ETag y Vary en una respuesta de producción.
- Confirmar que un servidor usa HTTP/2 o HTTP/3 — la cabecera alt-svc señala disponibilidad de upgrade; la negociación ALPN se completa durante el handshake TLS.
Preguntas frecuentes
¿Por qué HEAD devuelve a veces cabeceras distintas que GET?
Según RFC 9110 §9.3.2, HEAD devuelve las mismas cabeceras que GET haría, pero sin cuerpo. En la práctica algunos servidores omiten Set-Cookie/Content-Length en HEAD; algunos CDNs cachean HEAD distinto. Cuando HEAD devuelve 405, la herramienta recurre a GET con Range: bytes=0-0 — mismas cabeceras, sin descargar el cuerpo entero.
¿Qué cabeceras de seguridad son críticas, y a qué deberían configurarse?
Base OWASP: HSTS (RFC 6797, max-age=31536000 + includeSubDomains + preload), CSP Nivel 3 (default-src 'self' + 'strict-dynamic' basado en nonce), X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, Permissions-Policy deshabilitando APIs no usadas. X-Frame-Options queda obsoleta por CSP frame-ancestors.
¿Debería seguir configurando X-Frame-Options si tengo CSP frame-ancestors?
Los navegadores modernos priorizan CSP frame-ancestors e ignoran X-Frame-Options cuando ambas están presentes (según especificación W3C). frame-ancestors es más flexible (múltiples dominios, esquemas, puertos). Mantén X-Frame-Options: DENY solo como fallback legacy para navegadores anteriores a ~2015.
¿Cómo funcionan los nonces CSP, y por qué se prefieren a 'unsafe-inline'?
CSP Nivel 3: el servidor genera nonce aleatorio fresco por petición (≥128 bits, base64), lo emite en la cabecera CSP (script-src 'nonce-X') + en cada etiqueta <script nonce='X'>. El navegador solo ejecuta scripts con nonce coincidente. Añadir 'strict-dynamic' extiende la confianza a scripts cargados por scripts con nonce. Mejor práctica CSP moderna.
¿Cómo puedo comprobar que HTTP/2 o HTTP/3 se usa realmente?
Negociado vía ALPN durante el handshake TLS; protocolo no en cabeceras de respuesta directamente. Señales: curl -v muestra el resultado ALPN; la cabecera alt-svc anuncia disponibilidad de HTTP/3 (h3) para futuras peticiones; el panel Network de DevTools muestra el protocolo por petición. RFC 9114 = HTTP/3 sobre QUIC; RFC 9113 = HTTP/2 sobre TCP.
Anatomía de las cabeceras HTTP de respuesta — y por qué las cabeceras de seguridad importan
Las respuestas del servidor llevan docenas de cabeceras que los navegadores, CDNs e intermediarios inspeccionan para renderizar el contenido correctamente y aplicar los límites de seguridad. La semántica principal vive en el RFC 9110 (junio 2022), que reestructuró los RFC 7231-7235 en un único documento que define métodos, códigos de estado y semántica de campo independiente de cualquier versión específica de HTTP (1.1, 2 o 3). Las cabeceras se dividen en cuatro grupos funcionales: representación (Content-Type, Content-Encoding, Content-Length), validación/condicional (ETag, Last-Modified, If-None-Match según RFC 9110 §13), caché (Cache-Control, Age, Vary según RFC 9111) y política de seguridad. El stack de seguridad importa porque el comportamiento por defecto del navegador es permisivo: sin política explícita, los scripts se ejecutan desde cualquier origen, los frames se embeben sin restricción y las APIs sensibles están disponibles para cualquier documento. Strict-Transport-Security (RFC 6797, noviembre 2012) fuerza HTTPS durante una duración configurable; la lista de preload en hstspreload.org da protección al apex para visitantes nuevos antes de que ocurra cualquier petición HTTP. Content-Security-Policy Nivel 3 (W3C Working Draft, revisión de abril 2026) reemplaza las vulnerabilidades de 'unsafe-inline' con flujos basados en nonce/hash y la fuente strict-dynamic. La directiva frame-ancestors dentro de CSP supersede a X-Frame-Options (RFC 7034 Ross y Gondrom, octubre 2013, ahora obsoleta) — los navegadores modernos priorizan frame-ancestors cuando ambas están presentes, según la especificación W3C. Permissions-Policy (W3C Working Draft, que reemplaza Feature-Policy tras la división de 2020 en Permissions-Policy + Document-Policy) restringe el acceso a cámara, micrófono, geolocalización y otras APIs sensibles a nivel de documento. El proyecto OWASP Secure Headers sintetiza esto en una base de auditoría: HSTS preload, CSP basado en nonce, X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, Permissions-Policy deshabilitando las APIs no usadas. Esta herramienta lee cada cabecera de respuesta, analiza los valores y marca los elementos ausentes contra esa base.
- Todas las cabeceras de respuesta mostradas con valores analizados
- Auditoría de seguridad contra base OWASP (HSTS, CSP, X-Content-Type-Options, Referrer-Policy, Permissions-Policy)
- Comprobación de elegibilidad para HSTS preload (max-age ≥ 1 año, includeSubDomains, directiva preload)
- Parser de directivas CSP Nivel 3 con avisos de obsolescencia (frame-ancestors > X-Frame-Options)
- Parseo de Cache-Control / Age / Vary según RFC 9111; ETag / Last-Modified según RFC 9110 §8.8
- Detección de protocolo HTTP/1.1, HTTP/2 (RFC 9113), HTTP/3 (RFC 9114) vía señales alt-svc + ALPN
Gratis. Sin registro. Las tools de navegador (subred, JWT, fuerza de contraseña) corren localmente; las de consulta usan APIs públicas (Cloudflare DoH, RDAP, registros de certs). Detalle por herramienta en /es/methodology/.
Fuentes (7)
- Fielding, R., Nottingham, M., & Reschke, J. (Eds.) (2022). HTTP Semantics. RFC 9110, IETF (June 2022 — Internet Standard STD 97; obsoletes RFC 2818 + 7231-7233 + 7235 + 7538/7615/7694 + portions of 7230; RFC 7234 → RFC 9111; RFC 7230 messaging → RFC 9112).
- Fielding, R., Nottingham, M., & Reschke, J. (Eds.) (2022). HTTP Caching. RFC 9111, IETF (June 2022 — obsoletes RFC 7234).
- Hodges, J., Jackson, C., & Barth, A. (2012). HTTP Strict Transport Security (HSTS). RFC 6797, IETF (19 November 2012 — Strict-Transport-Security header field).
- West, M. (Ed.) (2026). Content Security Policy Level 3. W3C Working Draft (latest revision April 2026; supersedes CSP Level 2; frame-ancestors directive — introduced in CSP Level 2 (W3C Recommendation December 2016) and carried forward in Level 3 — supersedes X-Frame-Options RFC 7034).
- W3C Web Application Security WG (2025). Permissions Policy. W3C Working Draft (replaces deprecated Feature-Policy after 2020 split into Permissions-Policy + Document-Policy).
- Ross, D., & Gondrom, T. (2013). HTTP Header Field X-Frame-Options. RFC 7034, IETF (October 2013, Informational; obsoleted by CSP frame-ancestors directive introduced in CSP Level 2).
- OWASP (2025). OWASP Secure Headers Project. owasp.org/www-project-secure-headers — recommended baseline: HSTS preload + CSP + X-Content-Type-Options nosniff + Referrer-Policy strict-origin-when-cross-origin + Permissions-Policy.
Son los RFCs del IETF, las publicaciones del NIST y los estándares del W3C que la herramienta implementa o consulta. Localízalos en el IETF Datatracker (datatracker.ietf.org) o en el organismo correspondiente.
Guías relacionadas
Por Marco B. ·