¿Qué es el contenido mixto?

Una página tiene contenido mixto cuando su HTML inicial se carga a través de una conexión HTTPSsegura, pero otros recursos (como imágenes, videos, hojas de estilo y secuencias de comandos) se cargan a través de una conexión HTTP no segura. El nombre hace referencia a la combinación de contenido HTTP y HTTPS en una sola página.

Solicitar subrecursos con el protocolo HTTP no seguro debilita la seguridad de la página, ya que estas solicitudes son vulnerables a los ataques en la ruta de acceso, en los que un atacante escucha una conexión de red y ve o modifica la comunicación entre dos partes. Con estos recursos, los atacantes pueden hacer un seguimiento de los usuarios y reemplazar el contenido de un sitio web. En el caso del contenido mixto activo, pueden tomar el control completo de la página, no solo de los recursos no seguros.

Aunque muchos navegadores informan advertencias de contenido mixto al usuario, el informe suele ser demasiado tarde: las solicitudes no seguras ya se realizaron y la seguridad de la página está en riesgo.

La mayoría de los navegadores ahora bloquean el contenido mixto por motivos de seguridad. Cambia las solicitudes de contenido no seguro por contenido seguro para asegurarte de que tu página siga cargándose correctamente.

Los dos tipos de contenido mixto

Existen dos tipos de contenido mixto: activo y pasivo.

El contenido mixto pasivo, incluidas las imágenes, el video y el audio, no interactúa con el resto de la página, por lo que un ataque de intermediario está restringido en lo que puede hacer si intercepta o cambia ese contenido.

El contenido mixto activo interactúa con la página en su totalidad. Esto incluye secuencias de comandos, hojas de estilo, iframes y cualquier otro código que el navegador pueda descargar y ejecutar. Los ataques al contenido mixto activo permiten que un atacante haga casi cualquier cosa en la página.

Contenido mixto pasivo

El contenido mixto pasivo es menos riesgoso que el contenido mixto activo, pero el riesgo sigue presente. Por ejemplo, un atacante puede hacer lo siguiente:

  • Interceptar solicitudes HTTP de imágenes en tu sitio y cambiar o reemplazar esas imágenes
  • Reemplazar las imágenes de los botones para que los usuarios las confundan y, por ejemplo, borrar el contenido que querían guardar
  • Dañar tu sitio reemplazando tus imágenes por contenido pornográfico
  • Reemplazar las imágenes de tus productos por anuncios de otro contenido

Incluso si el atacante no cambia el contenido de tu sitio, puede hacer un seguimiento de los usuarios a través de solicitudes de contenido mixto. También puede saber qué páginas visita un usuario y qué productos ve en función de las imágenes o de otros recursos que carga el navegador.

Si hay contenido mixto pasivo, la mayoría de los navegadores indican en la barra de direcciones que la página no es segura, incluso cuando la página en sí se carga a través de HTTPS.

Hasta hace poco, el contenido mixto pasivo se cargaba en todos los navegadores, ya que bloquearlo habría dañado muchos sitios web. Esto ahora está comenzando a cambiar, por lo que es fundamental actualizar cualquier instancia de contenido mixto en tu sitio.

En algunos casos, Chrome actualiza automáticamente el contenido mixto pasivo. Esto significa que, si un recurso se codificó como HTTP, pero está disponible a través de HTTPS, el navegador carga la versión HTTPS. Si no hay una versión segura, el recurso no se carga.

Cada vez que Chrome detecta contenido mixto o actualiza automáticamente el contenido mixto pasivo, registra mensajes detallados en la pestaña Problemas de las Herramientas para desarrolladores para asesorarte sobre cómo solucionar el problema específico.

La pestaña Problemas de Herramientas para desarrolladores de Chrome muestra información detallada sobre el problema específico de contenido mixto y cómo solucionarlo.
Cada recurso no seguro aparece en las Herramientas para desarrolladores, junto con un estado de restricción.

Contenido mixto activo

El contenido mixto activo representa una amenaza mayor que el contenido mixto pasivo. Un atacante puede interceptar y reescribir contenido activo, y usarlo para tomar el control total de tu página o incluso de todo tu sitio web. Esto le permite cambiar cualquier aspecto de la página, como mostrar contenido diferente, robar contraseñas de usuario o credenciales de acceso, robar cookies de sesión de usuario o redireccionar al usuario a un sitio completamente diferente.

Debido a que los riesgos del contenido mixto activo son muy altos, la mayoría de los navegadores ya bloquean este tipo de contenido de forma predeterminada para proteger a los usuarios, pero el comportamiento varía entre los proveedores y las versiones de los navegadores. En Chrome, puedes ver el contenido bloqueado en la pestaña Problemas de las Herramientas para desarrolladores.

La pestaña Problemas de Herramientas para desarrolladores de Chrome muestra información detallada sobre el problema específico de contenido mixto y cómo solucionarlo.
Se bloquean algunos recursos no seguros para fortalecer la seguridad de tu sitio.

La especificación de contenido mixto

Los navegadores siguen la especificación de contenido mixto, que define las categorías de contenido bloqueable de forma opcional y contenido bloqueable.

Un recurso califica como contenido bloqueable de forma opcional "cuando el riesgo de permitir su uso como contenido mixto supera el riesgo de dañar partes importantes de la Web". Este es un subconjunto de contenido mixto pasivo.

Todo el contenido mixto que no sea bloqueable de forma opcional se considera bloqueable, y el navegador debe bloquearlo.

En los últimos años, el uso de HTTPS aumentó de manera significativa, y se convirtió en la opción predeterminada clara en la Web. Esto hace que ahora sea más factible que los navegadores consideren bloquear todo el contenido mixto, incluso los tipos de subrecursos definidos en la especificación de contenido mixto como bloqueables de forma opcional.

Navegadores más antiguos

Es posible que algunos visitantes usen navegadores más antiguos. Las diferentes versiones de navegadores de distintos proveedores tratan el contenido mixto de manera diferente. En el peor de los casos, los navegadores y las versiones más antiguos no bloquean ningún contenido mixto, lo que no es seguro para el usuario.

Si cargas todos tus recursos de forma segura y corriges los problemas de contenido mixto, te aseguras de que tu contenido sea visible y proteges a los usuarios del contenido peligroso que los navegadores más antiguos podrían no bloquear.