¿Por qué de repente aparece un problema de "Bloqueo de carga de contenido activo mixto" en Firefox?

350

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

Mirando el 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?

Appulus
fuente
Hola, he resuelto solo haciendo: googl.com/maps con //www.googl.com/maps Funcionará sin bloquear el contenido
Ram Balwad
el enlace de comercio electrónico está muerto (Error - No se pudo encontrar la página que solicitó)
Soleil - Mathieu Prévot

Respuestas:

417

Encontré esta publicación de blog que aclaraba 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 espionaje y ataques 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 encripta con SSL y, por lo tanto, se protege de escuchas y ataques MITM.

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

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

<link rel="stylesheet" href="https://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 protección en esta página', aunque esto no se recomienda por razones obvias.

ACTUALIZACIÓN: Este enlace de las páginas de soporte de Firefox (Mozilla) también es útil para explicar lo que 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 en el menú desplegable.

El icono en la barra de direcciones cambiará a un triángulo de advertencia naranja Icono 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.

Appulus
fuente
82
Un mejor enfoque sería eliminar sólo el protocolo completo: src="//code.jquery.com.... El navegador utilizará el protocolo con el que se cargó la página.
Blender
17
¡Oh hombre! El equipo de FF Dev se disparó en el pie con esta idea genial, una implementación totalmente desagradable. ¡Sin persistencia para deshabilitar páginas, y sin lista blanca! (para cuando conoces y confías en un sitio con contenido mixto)
Raad
66
@Raad simplemente no puede confiar en un sitio con contenido mixto. Si bien los propietarios del sitio pueden ser inocentes, todos los enrutadores con solicitud http pueden no serlo. Presentaría un informe de error a los propietarios del sitio.
mouse alfa el
66
@Raad y esos cientos, si no miles, de sitios están en el proceso exponiendo encabezados que pueden contener información de identificación personal destinada a ser encriptada con una conexión SSL ... francamente, no veo al Equipo FF Dev como la entidad irresponsable en este importa ...
Asimilater
3
Extremadamente frustrante cuando bloquea acciones completamente inofensivas. Hablando de zip! Tengo un complemento que usa Ziptastic para buscar la ciudad y el estado del código postal que ingresas en un formulario de dirección. Este complemento está roto: todo lo que quiero hacer es usar una API tranquila para agarrar un pequeño objeto JSON, sin dados. ¡Esta es la TSA de la seguridad del navegador! ¡Tengamos nuestros pantalones de vuelta, por el amor de Dios!
Chris Baker
137

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 srcincluso si lo va a publicar en una página http. Esto evitará el posible problema mencionado en los comentarios.

Alain Jacomet Forte
fuente
1
Solo una nota, si se usa en una página web almacenada localmente, podría hacer que el navegador busque infructuosamente el script, retrasando significativamente la carga de la página
binaryfunt
52

En ausencia de una función de lista blanca, debe hacer la opción "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 el "Awesome Bar", escriba "about: config". Si esta es su primera vez, recibirá el mensaje "¡Esto podría anular su garantía!" mensaje.

Sí, tendrás cuidado. Sí lo prometes!

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


La elección

La respuesta de iDevelApp es asombrosa.

DRaehal
fuente
1
¿Sabes habilitar contenido mixto en Chrome?
Faizan
1
@Faizan: De esta respuesta : "En la barra de direcciones en el extremo derecho debe haber un ícono de 'escudo', puede hacer clic en eso para ejecutar contenido inseguro".
fuglede
27

Coloque la <meta>etiqueta a continuación en la <head>sección de su documento para forzar al navegador a reemplazar conexiones no seguras (http) a conexiones seguras (https). Esto puede resolver el problema de contenido mixto si la conexión puede usar https.

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

Si desea bloquear, agregue la etiqueta a continuación en la <head>etiqueta:

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
tapas talukder
fuente
1
¿No funciona en cromo? Trabajó en Firefox. upgrade-insecure-requestsparece actualizar las llamadas http tp https.
Aniket Thakur
1
¿Es una mala idea? ¿No hay alguna razón para que exista la política de seguridad?
medley56
10

Se le dio 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"
Amit Naraniwal
fuente
7

En la página relevante que hace una llamada https a http de contenido mixto que no es accesible, podemos agregar la siguiente entrada en la correspondiente y eliminar el error de contenido mixto.

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

Tuve el mismo problema porque compré una plantilla CSS y tomó un archivo JavaScript externo a través de JavaScript http://whatever.js.com/javascript.js. Fui a esa página en mi navegador y luego lo cambié a https://whatever...SSL y funcionó, por lo que en mi etiqueta HTML JavaScript simplemente cambié la URL para usar en httpslugar de httpy funcionó.

papa grande
fuente
4

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]
Massimiliano
fuente
3

@Blender Comment es el mejor enfoque. Nunca codifique el protocolo en ninguna parte del código, ya que será difícil cambiarlo si se mueve de httpa https. Ya que necesita editar y actualizar manualmente todos los archivos.

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

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

Descubrí que si tiene problemas para incluir o mezclar su página con algo como http : //www.example.com, puede solucionarlo colocando // www .example.com en su lugar

irene salomo
fuente
Esto funcionó para mí, gracias. ¿Puedes explicarme qué está pasando?
Mantej Singh
2

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

Debe agregar la regla de redireccionamiento para la solicitud entre sitios, pero debe eliminar la regla de redireccionamiento para js / css externo.

tapas talukder
fuente
0

Acabo de solucionar este problema agregando el siguiente código en el encabezado:

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
RKAISSI Youssef
fuente
-9

Si su servidor de aplicaciones es weblogic, asegúrese de que la entrada WLProxySSL ON exista (y también asegúrese de que no se deba comentar) en el archivo weblogic.conf en el directorio conf del servidor web. luego reinicie el servidor web, funcionará.

Prasad Reddy
fuente