Verificador de Contenido Mixto

HTML a analizar

Detecta recursos http:// cargados dentro de una página HTTPS.

Siguiente

Después de migrar un sitio a HTTPS, etiquetas <img>, <script>, <link> o <iframe> que aún apuntan a http://... rompen el candado verde y, en navegadores modernos, a menudo no se cargan en absoluto. Ingresa una URL y este verificador carga la página, inspecciona cada subrecurso (imágenes, hojas de estilo, scripts, fuentes, iframes, video, audio) y lista cualquier cosa servida a través de HTTP simple para que puedas corregirlas antes de que los usuarios vean una advertencia de “no completamente seguro”.

Cómo funciona el escaneo

  1. 1

    Ingresa una URL

    URL HTTPS. El escáner sigue un salto de redirección.

  2. 2

    La página se obtiene

    HTML se analiza para cada referencia de subrecurso.

  3. 3

    Cada referencia se clasifica

    HTTPS, HTTP o relativa al protocolo (`//cdn...`).

  4. 4

    Informe agrupado por tipo

    Contenido activo vs. pasivo, con clasificación de severidad.

Contenido mixto activo vs. pasivo

Los navegadores tratan dos clases de manera diferente:

  • Contenido mixto activo (scripts, iframes, hojas de estilo, XHR/fetch, trabajadores, WebSockets). Bloqueado completamente por navegadores modernos. Incluye: <script>, <link rel="stylesheet">, <iframe>, fetch(), XMLHttpRequest, importScripts().
  • Contenido mixto pasivo (imágenes, video, carteles de audio). Cargado pero marcado, el candado cae y la barra de URL muestra una advertencia. Incluye: <img>, <audio>, <video>, objetivos de action de formularios.

Por qué es importante

  • Confianza. Un candado roto transmite “este sitio no es seguro” a los usuarios que lo notan.
  • Funcionalidad. El contenido activo bloqueado significa que los scripts no se ejecutan y las hojas de estilo no se aplican, las páginas se ven rotas.
  • SEO. Google prefiere páginas HTTPS; las señales de HTTPS rotas perjudican las clasificaciones indirectamente.
  • Cumplimiento. PCI DSS y muchos otros marcos de cumplimiento requieren HTTPS sin contenido mixto para páginas transaccionales.

Fuentes comunes

Fuente Solución típica
CDN legado en HTTP Cambiar dominio a CDN HTTPS
Código de inserción antiguo de YouTube / Vimeo Actualizar inserción a la versión actual
URLs de scripts de redes publicitarias Usar versión HTTPS (disponible desde hace años)
Fuentes de terceros, mapas Cambiar http://fonts.googleapis.comhttps://
Widgets de botones sociales Usar código de widget actual
URLs de imágenes generadas por usuarios Reescribir al guardar; cargar a través de proxy al mostrar
URLs codificadas en publicaciones de blog Buscar y reemplazar en lote en la base de datos

Estrategias de solución

  1. URLs relativas al protocolo (//cdn.example.com/a.js). Se carga con el protocolo de la página actual. Seguro para la mayoría de los CDNs pero obsoleto, preferir https://... explícito.
  2. Reescribir en la fuente. Actualiza tus plantillas y contenido para usar https://. Escanea la base de código con una expresión regular: http://(?!localhost).
  3. Actualización de la Política de Seguridad de Contenido. Content-Security-Policy: upgrade-insecure-requests indica al navegador que reescriba silenciosamente las URLs de activos HTTP a HTTPS. Mejor para sitios que no pueden auditar cada URL.
  4. <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> equivalente en línea.
  5. Proxy de activos solo HTTP a través de tu origen HTTPS si el upstream realmente no tiene un punto final HTTPS (raro hoy en día).

Qué encuentra el verificador

  • Todas las URLs externas referenciadas en <img>, <script>, <link>, <iframe>, <video>, <audio>, <source>.
  • Atributos action de formularios.
  • Referencias CSS en línea url(...) en bloques <style>.
  • No rastrea recursos inyectados por JavaScript, se añaden en tiempo de ejecución y necesitan una auditoría del lado del navegador (el panel de Problemas en Chrome DevTools captura esos).

Preguntas frecuentes

Parcialmente. El encabezado o metaetiqueta CSP upgrade-insecure-requests indica a los navegadores que reescriban automáticamente las URLs de subrecursos HTTP a HTTPS. Funciona cuando el servidor admite HTTPS; si el upstream es solo HTTP, la reescritura falla.

No. Solo recursos referenciados en HTML estático. Los scripts que crean elementos <img> en tiempo de ejecución no se mostrarán. El panel de Problemas de Chrome DevTools captura esos en el navegador.

Son seguras en páginas HTTPS (heredan HTTPS). Pero fallan en herramientas internas solo HTTP o páginas archivadas, y están obsoletas. Preferir https:// explícito.

Caché del navegador. Realiza una actualización forzada (Ctrl+Shift+R / Cmd+Shift+R) o prueba en una ventana de incógnito para confirmar la corrección. Los informes de CSP y las advertencias de la consola muestran el estado actual.

Un recuperador del lado del servidor obtiene la página para análisis. La URL en sí no se almacena más allá de la solicitud.

Herramientas relacionadas

Herramienta disponible en otros idiomas