Qué hace
Los encabezados de respuesta le dicen al navegador cómo tratar una página: si debe exigir HTTPS, qué scripts pueden ejecutarse, quién puede meterla en un marco. Esta herramienta solicita tu URL desde el servidor de iseeu.cc en la red de Cloudflare (primero HEAD, y GET si el servidor rechaza HEAD), descarta sin leer el cuerpo de la respuesta, si lo hay, y califica los encabezados de seguridad que recibe.
Las comprobaciones que puntúan:
- Strict-Transport-Security (HSTS). Le indica al navegador que use solo HTTPS con este host durante
max-agesegundos, para que las visitas siguientes nunca envíen una solicitud HTTP sin cifrar que alguien en una red Wi-Fi compartida pudiera secuestrar. Un año (31536000) o más cuenta como bueno; también se anotanincludeSubDomainsypreload. Si se envía por HTTP sin cifrar, el encabezado se ignora. - Content-Security-Policy (CSP). Indica de dónde pueden venir los scripts y otros recursos. Si un atacante logra meter una etiqueta
<script>en un campo de comentarios,script-src 'self'impide que se ejecute.'unsafe-inline'o'unsafe-eval'en script-src debilitan esa protección, porque el código en línea inyectado yeval()se ejecutan de todas formas. También se revisaframe-ancestors. - Protección contra clickjacking. Una página hostil puede poner la tuya en un marco transparente encima de un botón señuelo, de modo que el clic del visitante cae en tu página.
X-Frame-Options: DENYoSAMEORIGIN, o la directiva CSPframe-ancestors 'none'o'self', lo impiden; cualquiera de las dos cumple esta comprobación. - X-Content-Type-Options: nosniff. Hace que el navegador confíe en el Content-Type declarado, así que un archivo de texto subido que contenga JavaScript y se sirva como
text/plainno se puede ejecutar mediante una etiqueta script. - Referrer-Policy. Con
strict-origin-when-cross-origin, una página en/reset?token=abc123solo le comunica a los sitios de terceros su esquema y su host en el encabezado Referer, no el token. - Permissions-Policy. Desactiva las funciones del navegador que no se usan, para la página y todo lo que incrusta. Con
camera=(), microphone=(), geolocation=(), un marco de anuncios o un script comprometido ni siquiera puede pedirlas. - Cross-Origin-Opener-Policy (COOP).
same-originle da a tu página su propio grupo de contexto de navegación, así que una ventana de otro sitio que la abrió, o que ella abrió, pierde su referencia y no puede navegarla ni sondearla.
Se muestran pero no puntúan: los valores de Server y X-Powered-By, como Apache/2.4.41 (Ubuntu) o PHP/7.4.3, que facilitan relacionar un sitio con vulnerabilidades conocidas, y los atributos de cada Set-Cookie: Secure (solo HTTPS), HttpOnly (oculta para JavaScript) y SameSite (limita su envío en solicitudes entre sitios).
La calificación es un resumen heurístico, no una auditoría de seguridad. Los encabezados son una sola capa; no arreglan una inyección SQL ni un CMS sin actualizar.
Cómo usarla
- Ingresa una URL pública completa que empiece con
http://ohttps://. - Ejecuta la revisión. Se rinde a los 5 segundos.
- Lee la cadena de redirecciones. Se siguen hasta 5 redirecciones, y cada salto muestra su código de estado y su Location.
- Lee el código de estado final, la calificación y la lista de encabezados de respuesta.
Solo se permiten los puertos 80 y 443. Se rechazan las direcciones privadas, de loopback, de enlace local, de NAT de operador (CGNAT) y otras reservadas, igual que localhost y los nombres bajo .local o .internal. También se rechaza iseeu.cc mismo, incluida una redirección que termine aquí, porque la revisión volvería a llamar al mismo servidor; para ver los encabezados de este sitio, usa curl -sI https://iseeu.cc/. Cada dirección IP puede hacer 10 revisiones por minuto. La URL no se guarda ni se registra.
El destino ve una solicitud que viene de Cloudflare y no de ti, así que un desafío antibots, una redirección por país o un servidor que trata HEAD distinto que GET pueden cambiar el resultado.
Casos de uso
- Después de un despliegue. Confirma que un cambio en el proxy o en la CDN no eliminó encabezados, como HSTS desaparecido tras cambiar de balanceador de carga.
- Redirecciones en orden. Comprueba que http:// llegue a https:// en un solo salto y que el dominio raíz y www terminen en una sola dirección.
- Revisión de proveedores. Antes de incrustar la página de inicio de sesión o de pago de un proveedor, mira si permite que la metan en un marco.
- Versiones expuestas. Detecta un encabezado Server o X-Powered-By que indique una versión exacta.
- Revisión de cookies. Asegúrate de que las cookies de sesión lleven Secure, HttpOnly y SameSite antes de que un auditor las señale.
- Implementación de CSP. Después de salir del modo report-only, confirma que la política que bloquea está activa y no tiene 'unsafe-inline'.
Un buen conjunto para empezar
Un punto de partida razonable para un sitio que sirve sus propios scripts y estilos:
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Permissions-Policy: camera=(), microphone=(), geolocation=()
Cross-Origin-Opener-Policy: same-originX-Frame-Options repite frame-ancestors para los navegadores antiguos. Esta CSP bloquea los scripts en línea, los manejadores de eventos en línea como onclick y los estilos en línea, así que pruébala antes de aplicarla. Si tus propias páginas meten el sitio en un marco, usa 'self' y SAMEORIGIN en su lugar.
Implementa la CSP en modo report-only
Envía la política como Content-Security-Policy-Report-Only y el navegador no bloquea nada: registra las infracciones en la consola y en un endpoint de reportes que tú configures. Déjala correr con el tráfico normal, corrige lo que aparezca y después cambia el nombre del encabezado. También puedes aplicar una política permisiva y probar al mismo tiempo otra más estricta. Un encabezado report-only por sí solo no protege a nadie.
La precarga de HSTS es un compromiso
Agregar preload y enviar el dominio lo incluye en una lista integrada en Chrome que también usan Firefox, Safari y Edge, así que los navegadores evitan HTTP sin cifrar incluso en la primera visita. La lista exige includeSubDomains y un max-age de al menos un año, así que todos los subdominios, hasta un host de intranet olvidado o la página de administración de una impresora, deben servir HTTPS válido. Salir de la lista es lento, porque el cambio solo llega a la gente a medida que actualiza su navegador. Empieza con un max-age como 300, súbelo cuando nada falle y deja la precarga para el final.
Olvídate de X-XSS-Protection
Los filtros XSS del navegador que controlaba este encabezado ya no existen: Chrome eliminó su XSS Auditor en 2019, Edge retiró su filtro, Firefox nunca tuvo uno, y esos filtros se podían aprovechar para desactivar scripts a elección. Envía X-XSS-Protection: 0 o nada, y apóyate en la CSP.
Revisar con curl
curl -sI https://iseeu.cc/
curl -sIL http://iseeu.cc/
curl -s -D - -o /dev/null https://iseeu.cc/El primero muestra los encabezados de una sola respuesta HEAD, incluidos los encabezados propios de una redirección, que la lista de saltos de esta página omite. El segundo sigue las redirecciones y muestra cada respuesta. El tercero envía GET y descarta el cuerpo, para servidores que tratan HEAD de forma distinta. Agrega | grep -i strict-transport para aislar un encabezado; los nombres no distinguen mayúsculas y minúsculas, y HTTP/2 los envía en minúsculas.
Preguntas frecuentes
¿Sacar A+ quiere decir que mi sitio es seguro?
No. La calificación resume unos cuantos encabezados de respuesta que hacen más difíciles ciertos ataques del lado del navegador. No dice nada sobre actualizaciones, autenticación, control de acceso, fallas de inyección ni sobre cómo se guardan los secretos. Un sitio puede sacar A+ y aun así filtrar datos por una API mal hecha, mientras que un sitio con una nota más baja puede estar bien administrado. Tómalo como un vistazo rápido a una sola capa, no como una auditoría.
¿Por qué aquí veo encabezados distintos a los que ve mi navegador?
La solicitud sale de la red de Cloudflare, no de tu dispositivo, y es una solicitud HEAD salvo que el servidor rechace HEAD. Muchos sitios cambian su respuesta según el país, según si creen que eres un bot o según el método de la solicitud. Un desafío antibots, una redirección por país o un framework que maneja HEAD por separado producen encabezados distintos. Ejecuta curl desde tu propia computadora para comparar.
¿Puedo revisar un servidor de mi casa o de mi oficina?
No. El verificador solo se conecta a los puertos 80 y 443 y rechaza las direcciones privadas, de loopback, de enlace local y de NAT de operador (CGNAT), otros rangos reservados, y nombres como localhost o los que terminan en .local o .internal. Así se evita que alguien lo use para llegar a equipos que están detrás del firewall de otra persona. Para un host interno, ejecuta curl -I desde una computadora de esa red.
¿Queda guardada en algún lado la URL que reviso?
La URL no se guarda ni se registra. iseeu.cc no guarda registros de direcciones IP ni de consultas, no tiene base de datos de visitantes y no usa cookies. El sitio que revisas sí recibe una solicitud, pero esa solicitud llega desde la red de Cloudflare y no desde tu propia dirección IP.
¿Se ven las políticas de seguridad que pongo en una etiqueta meta del HTML?
No. El verificador solo lee los encabezados de respuesta y descarta el cuerpo sin leerlo, así que nunca ve una política puesta en una etiqueta meta http-equiv. Los navegadores también limitan las etiquetas meta: una CSP entregada así ignora frame-ancestors y no puede funcionar en modo report-only, y HSTS y X-Frame-Options se ignoran por completo en etiquetas meta. Los encabezados HTTP reales son el lugar confiable para todas ellas.
¿Qué pasa si hay muchas redirecciones o el servidor tarda en responder?
El verificador sigue hasta 5 redirecciones, mostrando el código de estado y el Location de cada salto, y se rinde a los 5 segundos. Una cadena que necesita más saltos suele indicar un error de configuración, por ejemplo http y https, o el dominio raíz y www, mandando a los visitantes de un lado a otro. Cada salto extra además le cuesta a los visitantes reales un viaje de ida y vuelta antes de que la página empiece a cargar.
¿Cómo veo los encabezados de un sitio con curl?
curl -sI seguido de la URL muestra los encabezados de una sola respuesta HEAD. curl -sIL sigue las redirecciones y muestra cada respuesta. curl -s -D - -o /dev/null envía un GET y descarta el cuerpo, útil con servidores que tratan HEAD de forma distinta. Para aislar un encabezado, agrega | grep -i y su nombre; los nombres no distinguen mayúsculas y minúsculas, y HTTP/2 los envía en minúsculas.
La calificación solo mira los encabezados de respuesta de una solicitud hecha desde un único lugar. Tómala como una pista para seguir trabajando y no como un veredicto sobre la seguridad general de un sitio.