¿Qué es el contenido mixto?

El contenido mixto ocurre cuando el HTML inicial se carga en una conexión HTTPS segura, pero otros recursos (como imágenes, videos, hojas de estilo y secuencias de comandos) se cargan en una conexión HTTP no segura. Esto se denomina contenido mixto porque el contenido HTTP y HTTPS se cargan para mostrar la misma página y la solicitud inicial estaba segura a través de HTTPS.

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

Aunque muchos navegadores informan advertencias de contenido mixto a los usuarios, para el momento en que sucede, es demasiado tarde: las solicitudes no seguras ya se realizaron y la seguridad de la página está comprometida.

Por ello, los navegadores bloquean cada vez más el contenido mixto. Si tienes contenido mixto en tu sitio, corregirlo garantizará que el contenido siga cargándose a medida que los navegadores se vuelvan más estrictos.

Los dos tipos de contenido mixto

Los dos tipos de contenido mixto son el activo y el pasivo.

El contenido mixto pasivo hace referencia al contenido que no interactúa con el resto de la página y, por lo tanto, los ataques de intermediarios se limitan a lo que pueden hacer si interceptan o cambian ese contenido. El contenido mixto pasivo se define como contenido de imágenes, video y audio.

El contenido mixto activo interactúa con toda la página y permite a un atacante hacer casi cualquier cosa en ella. El contenido mixto activo incluye secuencias de comandos, hojas de estilo, iframes y otros códigos que el navegador puede descargar y ejecutar.

Contenido mixto pasivo

Se considera que el contenido mixto pasivo es menos problemático, pero igual representa una amenaza de seguridad para tu sitio y tus usuarios. Por ejemplo, un atacante puede interceptar las solicitudes HTTP de imágenes de tu sitio y, luego, intercambiar o reemplazar las imágenes. Puede intercambiar las imágenes de los botones Guardar y Borrar, lo que provoca que los usuarios borren el contenido sin querer, reemplazar los diagramas de productos por contenido lascivo o pornográfico, ocultar tu sitio, o reemplazar las imágenes de tus productos con anuncios de un sitio o producto diferente.

Incluso si no altera el contenido de tu sitio, puede hacer un seguimiento de los usuarios a través de solicitudes de contenido mixto. El atacante puede distinguir qué páginas visita un usuario y qué productos ve a partir de imágenes u otros recursos que carga el navegador.

Si está presente el contenido mixto pasivo, la mayoría de los navegadores indicarán en la barra de URL que la página no es segura, incluso cuando la página en sí se cargó a través de HTTPS. Puedes observar este comportamiento con esta demostración que contiene ejemplos de contenido mixto pasivo.

Hasta hace poco tiempo, se cargaba contenido mixto pasivo en todos los navegadores, ya que, para bloquearlo, habría dañado muchos sitios web. Esto está empezando a cambiar, por lo que es fundamental actualizar todas las instancias de contenido mixto en tu sitio.

Actualmente, Chrome está lanzando la actualización automática de contenido mixto pasivo siempre que sea posible. La actualización automática significa que, si el recurso está disponible a través de HTTPS, pero se codificó como HTTP, el navegador cargará la versión HTTPS. Si no se encuentra una versión segura, el recurso no se cargará.

Cuando detecta contenido mixto o actualiza automáticamente el contenido mixto pasivo, Chrome registra mensajes detallados en la pestaña Problemas de Herramientas para desarrolladores para ayudarte a solucionar el problema específico.

La pestaña Problemas de las Herramientas para desarrolladores de Chrome muestra información detallada sobre el problema específico de contenido mixto y cómo solucionarlo

Contenido mixto activo

El contenido mixto activo representa una mayor amenaza que el contenido mixto pasivo. Un atacante puede interceptar y reescribir contenido activo, y así tomar todo el control de tu página o incluso de todo tu sitio web. De esta manera, el atacante puede cambiar cualquier aspecto de la página, como mostrar contenido completamente diferente, robar contraseñas de usuarios u otras credenciales de acceso, robar cookies de sesión del usuario o redireccionar al usuario a un sitio completamente diferente.

Debido a la gravedad de esta amenaza, la mayoría de los navegadores ya bloquean este tipo de contenido de forma predeterminada para proteger a los usuarios, pero la funcionalidad varía según los proveedores del navegador y las versiones.

Esta otra demostración contiene ejemplos de contenido mixto activo. Carga el ejemplo mediante HTTP para ver el contenido que se bloquea cuando cargas el ejemplo a través de HTTPS. El contenido bloqueado también se detallará en la pestaña Problemas.

La pestaña Problemas de las Herramientas para desarrolladores de Chrome muestra información detallada sobre el problema específico de contenido mixto y cómo solucionarlo

La especificación de contenido mixto

Los navegadores siguen la especificación de contenido mixto, que define las categorías de contenido que se puede bloquear y contenido que se puede bloquear.

Según la especificación, un recurso califica como contenido opcionalmente bloqueable "cuando el riesgo de permitir su uso como contenido mixto se supera por el riesgo de interrumpir partes importantes de la Web". Este es un subconjunto de la categoría de contenido mixto pasivo descrita anteriormente.

Todo el contenido que no se puede bloquear de forma opcional se considera bloqueable y el navegador debe bloquearlo.

En los últimos años, el uso de HTTPS aumentó considerablemente y se convirtió en el claro predeterminado 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. Es por ello que ahora Chrome toma un enfoque más estricto sobre estos subrecursos.

Navegadores más antiguos

Es importante recordar que no todos los visitantes de tu sitio web utilizan los navegadores más actualizados. Las diferentes versiones de los distintos proveedores de navegadores tratan el contenido mixto de manera diferente. En el peor de los casos, las versiones y los navegadores anteriores no bloquean el contenido mixto en absoluto, lo que es muy inseguro para el usuario.

Al solucionar los problemas de contenido mixto, te aseguras de que tu contenido sea visible en navegadores nuevos. También ayudas a proteger a los usuarios del contenido peligroso que no está bloqueado por navegadores más antiguos.