Comprobación de HTTPS y cabeceras de seguridad

Comprueba HTTPS y las cabeceras de seguridad: URL http, contenido mixto, HSTS ausente, formularios y subrecursos inseguros, y una calificación de cabeceras para una sola URL.

Qué hace

Por URL

security-check envía una petición GET normal. Lee las cabeceras de respuesta, los atributos de las cookies y la redirección de http a https. Seis cabeceras de seguridad dan una puntuación de 0 a 100 y una calificación de A a F, y se señalan las cabeceras que revelan la versión. headers-check muestra, en cambio, el conjunto completo de cabeceras.

  • HSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy y Permissions-Policy
  • Atributos de las cookies: Secure y SameSite
  • Si http redirige a https
  • Comprobación opcional de rutas, desactivada por defecto

En un rastreo

En un rastreo, cada página se comprueba por recursos http en una página https, formularios que envían a http, enlaces http y cabeceras de seguridad ausentes. Las incidencias son por página, con la URL que las provoca.

  • Contenido mixto y subrecursos inseguros
  • Formularios que envían a una acción http://
  • Enlaces internos http:// en páginas https
  • Cabeceras ausentes: HSTS, CSP, X-Content-Type-Options, X-Frame-Options y Referrer-Policy

Rutas expuestas

Con el flag de sondeo, security-check también pregunta si responden rutas de servicio como .git o .env. Es un paso extra deliberado y está desactivado por defecto, porque incluso una petición de solo lectura a otro sitio debe ser una decisión. No es una prueba de penetración.

  • Desactivado por defecto
  • Solo con --probe-paths
  • Solo en sitios que tienes permiso para probar

Tres pasos, un análisis guardado

  1. Lee la respuesta de una URL

    security-check envía una única petición GET y lee las cabeceras de respuesta, los atributos de las cookies y la redirección de http a https.

  2. Puntúa seis cabeceras de seguridad

    HSTS, CSP, X-Content-Type-Options, X-Frame-Options, Referrer-Policy y Permissions-Policy dan una puntuación de 0 a 100 y una calificación de A a F.

  3. Marca el contenido mixto en un rastreo

    En un rastreo, cada página se comprueba por recursos http, destinos de formularios inseguros y cabeceras de seguridad ausentes o repetidas.

Comprobaciones de esta función

ComprobaciónQué significaGravedadEvidencia
FORM_URL_INSECUREUn formulario envía a una acción http://, así que los datos que envía no van cifradosCriticalURL de la acción del formulario en la página
HTTP_URLLa URL se sirve por http en lugar de httpsImportantURL de la página
MIXED_CONTENTUna página https carga un recurso por httpImportantURL de la página y URL del recurso http
INSECURE_SUBRESOURCEUna página https carga una imagen, un script o una hoja de estilos por httpImportantURL del recurso y página que lo enlaza
MISSING_HSTSLa página no envía la cabecera Strict-Transport-SecurityTipCabeceras de respuesta de la página
MISSING_CSPUna página HTML no envía la cabecera Content-Security-PolicyTipCabeceras de respuesta de la página
MISSING_X_FRAME_OPTIONSLa página no tiene ni X-Frame-Options ni la directiva frame-ancestors de CSPTipCabeceras de respuesta de la página
DUPLICATE_SECURITY_HEADERUna cabecera de seguridad se envía más de una vez en la misma respuestaTipNombre de la cabecera y la respuesta que la repite
También en el registro de comprobaciones
HTTP_LINK_ON_HTTPSMISSING_X_CONTENT_TYPE_OPTIONSMISSING_REFERRER_POLICY

Un solo comando

bash
seohead security-check --url https://example.com/

Primero, instala SpiderHead: guía de instalación. Cada comando también funciona como herramienta MCP para agentes de IA.

Qué necesitas

  • Una URL de página para security-check
  • Un rastreo para las comprobaciones a nivel de página
  • Permiso para probar el sitio si usas --probe-paths

Límites

  • Comprueba que una cabecera existe, no si su valor es robusto
  • Una URL da una sola respuesta: otras páginas pueden enviar otras cabeceras
  • No es una prueba de penetración ni un escaneo de vulnerabilidades
  • security-check califica Permissions-Policy, pero no la informa como incidencia de rastreo

Preguntas

¿Cambia algo en mi sitio?
No. security-check envía peticiones GET normales y lee lo que el sitio ya envía. Buscar rutas como .git o .env está desactivado por defecto y solo se ejecuta con --probe-paths.
¿Cómo se calcula la calificación?
Cada cabecera suma puntos: HSTS 20, CSP 20, X-Content-Type-Options 15, X-Frame-Options 15, Referrer-Policy 15 y Permissions-Policy 15. 90 o más es A, 75 es B, 60 es C, 40 es D, 20 es E, y cualquier valor menor es F. Una directiva frame-ancestors de CSP cuenta para X-Frame-Options.
¿Comprueba los valores de las cabeceras?
No. Comprueba que cada cabecera esté presente. Una CSP débil que esté presente recibe la puntuación completa.
¿Un solo comando ejecuta todas las comprobaciones de esta lista?
No. security-check cubre una URL. Las comprobaciones a nivel de página de esta lista vienen de un rastreo y aparecen por página en los resultados del rastreo.
¿Puedo revisar las cabeceras de un rastreo guardado?
Sí. headers-analyze lee las cabeceras de respuesta redactadas que guarda un escaneo guardado, sin enviar ninguna petición, e informa de las incidencias de cabeceras de seguridad.

Pruébalo en tu propio sitio