web-dev-qa-db-esp.com

¿Por qué de repente me aparece un problema de "Carga bloqueada de contenido activo mixto" en Firefox?

Esta mañana, al actualizar mi navegador Firefox a la última versión (de 22 a 23), algunos de los aspectos clave de mi back office (sitio web) dejaron de funcionar.

En cuanto al registro de Firebug, se informaron los siguientes errores:

Blocked loading mixed active content "http://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
Blocked loading mixed active content "http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"`

entre otros errores causados ​​por el último de los dos anteriores no se carga.

¿Qué significa lo anterior y cómo lo resuelvo?

329
Appulus

Encontré esta publicación de blog que aclaró algunas cosas. Para citar el bit más relevante:

¡El contenido activo mixto ahora está bloqueado por defecto en Firefox 23!

¿Qué es el contenido mixto?
Cuando un usuario visita una página servida a través de HTTP, su conexión está abierta para ataques de espionaje y de hombre en el medio (MITM). Cuando un usuario visita una página servida a través de HTTPS, su conexión con el servidor web se autentica y se encripta con SSL y, por lo tanto, se protege de intrusos y ataques MITM.

Sin embargo, si una página HTTPS incluye contenido HTTP, los atacantes pueden leer o modificar la parte HTTP, incluso aunque la página principal se sirva a través de HTTPS. Cuando una página HTTPS tiene contenido HTTP, llamamos a ese contenido "mixto". La página web que el usuario está visitando solo está parcialmente encriptada, ya que parte del contenido se recupera sin cifrar a través de HTTP. El Bloqueador de contenido mixto bloquea ciertas solicitudes HTTP en las páginas HTTPS.

La resolución, en mi caso, fue simplemente garantizar que jqueryinclude fueran las siguientes (observe la eliminación del protocolo):

<link rel="stylesheet" href="//code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css" type="text/css">
<script type="text/javascript" src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"></script>

Tenga en cuenta que el 'arreglo' temporal es hacer clic en el icono 'escudo' en la esquina superior izquierda de la barra de direcciones y seleccionar 'Desactivar la protección en esta página', aunque esto es no recomendado por obvias razones.

ACTUALIZACIÓN: Este enlace de las páginas de soporte de Firefox (Mozilla) también es útil para explicar qué constituye contenido mixto y, como se indica en el párrafo anterior, en realidad proporciona detalles sobre cómo mostrar la página independientemente:

La mayoría de los sitios web continuarán funcionando normalmente sin ninguna acción de su parte.

Si necesita permitir que se muestre el contenido mixto, puede hacerlo fácilmente:

Haga clic en el icono de escudo Escudo de contenido mixto en la barra de direcciones y elija Desactivar protección en esta página del menú desplegable.

El ícono en la barra de direcciones cambiará a un triángulo de advertencia de color naranja Ícono de Identidad de Advertencia para recordarle que se está mostrando contenido inseguro.

Para revertir la acción anterior (volver a bloquear contenido mixto), simplemente vuelva a cargar la página.

397
Appulus

Significa que estás llamando a http desde https. Puede usar src="//url.to/script.js" en su etiqueta de script y se detectará automáticamente.

Alternativamente, puede usar el uso de https en su src incluso si lo va a publicar en una página http. Esto evitará el problema potencial mencionado en los comentarios.

126

En ausencia de una función de lista blanca, debe elegir "todo" o "nada". Puede deshabilitar completamente el bloqueo de contenido mixto.


La elección de nada

Deberá deshabilitar permanentemente el bloqueo de contenido mixto para el perfil activo actual.

En la "Barra impresionante", escribe "about: config". Si esta es su primera vez, obtendrá el mensaje "¡Esto podría invalidar su garantía!" mensaje.

Sí serás cuidadoso. Sí lo prometes!

Encuentra security.mixed_content.block_active_content . Establezca su valor en falso .


La elección total

La respuesta de iDevelApp es impresionante.

50
DRaehal

Si desea permitir la solicitud de contenido mixto, agregue la siguiente etiqueta en<head>tag.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

Si desea bloquear, agregue la siguiente etiqueta en la etiqueta<head>:

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
21
tapas talukder

Si estás consumiendo un servicio interno a través de AJAX, asegúrate de que la url apunte a https, esto me solucionó el error.

Inicial AJAX URL: " http://XXXXXX.com/Core.svc/ " + ApiName
Corregido AJAX URL: " https://XXXXXX.com/Core.svc/ " + ApiName,

10
Bryan Cote-Chang

Ha dado el error debido a la seguridad. para esto, use "https" no "http" en la url del sitio web.

Por ejemplo :

   "https://code.jquery.com/ui/1.8.10/themes/smoothness/jquery-ui.css"
   "https://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/jquery-ui.min.js"
9
Amit Naraniwal

En la página relevante que hace un contenido mixto de https a http call que no es accesible, podemos agregar la siguiente entrada en la correspondiente y deshacerse del error de contenido mixto.

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
6
sramay

Tuve este mismo problema porque compré una plantilla CSS y agarré un archivo javascript externo de javascript a través de http://whatever.js.com/javascript.js. Fui a esa página en mi navegador y luego la cambié a https://whatever... usando SSL y funcionó, así que en mi etiqueta HTML javascript acabo de cambiar la URL para usar https en lugar de http y funcionó.

4
Edmund

Para forzar la redirección en el protocolo https, también puede agregar esta directiva en .htaccess en la carpeta raíz

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

RewriteRule (.*) https://%{HTTP_Host}%{REQUEST_URI} [R=301,L]
4
Massimiliano

Tengo el mismo problema cuando mi sitio va de http a https. Hemos agregado una regla para todas las solicitudes para redireccionar http a https.

Debe agregar la regla de redirección para la solicitud entre sitios, pero debe eliminar la regla de redirección para js/css externos.

2
tapas talukder

@Blender Comment es el mejor enfoque. Nunca codifique el protocolo en ningún lugar del código, ya que será difícil cambiarlo si pasa de http a https. Ya que necesitas editar manualmente y actualizar todos los archivos.

Esto siempre es mejor ya que detecta automáticamente el protocolo.

src="//code.jquery.com
2
Krishnadas PC

Descubrí que si tiene problemas con la inclusión o la mezcla de su página con algo como http : //www.example.com, puede corregirlo poniendo // www . Example.com

1
irene salomo