Perché improvvisamente ricevo un problema "Caricamento bloccato di contenuto attivo misto" in Firefox?


350

Questa mattina, dopo aver aggiornato il mio browser Firefox all'ultima versione (dalle 22 alle 23), alcuni degli aspetti chiave del mio back office (sito Web) hanno smesso di funzionare.

Guardando il registro Firebug, venivano segnalati i seguenti errori:

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"`

tra gli altri errori causati da questi ultimi due non caricati.

Cosa significa quanto sopra e come posso risolverlo?


Ehi, ho risolto solo facendo: googl.com/maps con //www.googl.com/maps Funzionerà senza bloccare il contenuto
Ram Balwad,

il link e-commerce è morto (errore - Impossibile trovare la pagina richiesta)
Soleil - Mathieu Prévot

Risposte:


417

Ho trovato questo post sul blog che ha chiarito alcune cose. Per citare il bit più rilevante:

Il contenuto attivo misto è ora bloccato per impostazione predefinita in Firefox 23!

Che cos'è il contenuto misto?
Quando un utente visita una pagina pubblicata su HTTP, la sua connessione è aperta per attacchi di intercettazioni e man-in-the-middle (MITM). Quando un utente visita una pagina pubblicata su HTTPS, la sua connessione con il server Web viene autenticata e crittografata con SSL e quindi protetta da intercettatori e attacchi MITM.

Tuttavia, se una pagina HTTPS include contenuto HTTP, la parte HTTP può essere letta o modificata dagli attaccanti, anche se la pagina principale viene pubblicata su HTTPS. Quando una pagina HTTPS ha contenuto HTTP, lo chiamiamo "misto". La pagina Web visitata dall'utente è crittografata solo parzialmente, poiché parte del contenuto viene recuperato non crittografato su HTTP. Mixed Content Blocker blocca alcune richieste HTTP su pagine HTTPS.

La risoluzione, nel mio caso, era semplicemente quella di garantire che le jqueryinclusioni fossero le seguenti (notare la rimozione del protocollo):

<link rel="stylesheet" href="https://stackoverflow.com//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>

Si noti che la 'correzione' temporanea è di fare clic sull'icona 'scudo' nell'angolo in alto a sinistra della barra degli indirizzi e selezionare 'Disabilita protezione su questa pagina', sebbene ciò non sia raccomandato per ovvi motivi.

AGGIORNAMENTO: Questo collegamento dalle pagine di supporto di Firefox (Mozilla) è utile anche per spiegare cosa costituisce un contenuto misto e, come indicato nel paragrafo precedente, fornisce effettivamente i dettagli su come visualizzare la pagina indipendentemente da:

La maggior parte dei siti Web continuerà a funzionare normalmente senza alcuna azione da parte dell'utente.

Se devi consentire la visualizzazione del contenuto misto, puoi farlo facilmente:

Fai clic sull'icona dello scudo Schermo a contenuto misto nella barra degli indirizzi e scegli Disabilita protezione su questa pagina dal menu a discesa.

L'icona nella barra degli indirizzi diventerà un triangolo di avvertimento arancione Icona di identità di avviso per ricordare che viene visualizzato il contenuto non sicuro.

Per ripristinare l'azione precedente (bloccare nuovamente il contenuto misto), basta ricaricare la pagina.


82
Un approccio migliore sarebbe quello di eliminare solo il protocollo del tutto: src="//code.jquery.com.... Il browser utilizzerà il protocollo con cui è stata caricata la pagina.
Blender

17
Oddio! Il team di sviluppo FF si è sparato ai piedi con questa: bella idea, implementazione totalmente rara. Nessuna persistenza per disabilitare le pagine e nessuna lista bianca! (per quando conosci e ti fidi di un sito con contenuti misti)
Raad,

6
@Raad semplicemente non puoi fidarti di un sito con contenuti misti. Mentre i proprietari dei siti potrebbero essere innocenti, tutti i router che trasportano la richiesta http potrebbero non esserlo. Presenterei una segnalazione di bug ai proprietari del sito.
alpha-mouse

6
@Raad e quelle centinaia se non migliaia di siti sono in procinto di esporre intestazioni che potrebbero contenere informazioni di identificazione personale destinate a essere crittografate con una connessione SSL ... francamente, non vedo l'FF Dev Team come l'entità irresponsabile in questo importa ...
Assimilater,

3
Estremamente frustrante quando blocca azioni completamente innocue. A proposito di zip! Ho un plugin che utilizza Ziptastic per cercare la città e lo stato del codice postale inserito in un modulo di indirizzo. Questo plugin è rotto: tutto quello che voglio fare è usare un'API riposante per afferrare un piccolo oggetto JSON - nessun dado. Questa è la TSA della sicurezza del browser! Restituiamo i nostri pantaloni, per amor di merda!
Chris Baker,

136

Significa che stai chiamando http da https. È possibile utilizzare src="//url.to/script.js"nel tag dello script e verrà rilevato automaticamente.

In alternativa puoi usare https nel tuo srcanche se lo pubblichi su una pagina http. Ciò eviterà il potenziale problema menzionato nei commenti.


1
Solo una nota, se utilizzata su una pagina Web memorizzata localmente, potrebbe indurre il browser a cercare inutilmente lo script, ritardando in modo significativo il caricamento della pagina
binaryfunt

52

In assenza di una lista bianca devi fare la scelta "tutto" o "niente". È possibile disabilitare completamente il blocco dei contenuti misti.


La scelta del nulla

Sarà necessario disabilitare in modo permanente il blocco dei contenuti misti per il profilo attivo corrente.

Nella "Awesome Bar", digita "about: config". Se è la prima volta che otterrai "Questo potrebbe invalidare la garanzia!" Messaggio.

Sì, starai attento. Sì, lo prometti!

Trova security.mixed_content.block_active_content . Impostare il valore su false .


Tutta la scelta

La risposta di iDevelApp è fantastica.


1
Sai abilitare i contenuti misti su Chrome?
Faizan,

1
@Faizan: da questa risposta : "Nella barra degli indirizzi all'estremità destra dovrebbe essere presente un'icona" scudo ", puoi fare clic su di essa per eseguire contenuti non sicuri."
Fuglede,

27

Inserisci il <meta>tag di seguito nella <head>sezione del documento per forzare il browser a sostituire le connessioni non sicure (http) con le connessioni protette (https). Questo può risolvere il problema del contenuto misto se la connessione è in grado di usare https.

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

Se vuoi bloccare, aggiungi il tag seguente nel <head>tag:

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

1
Non funziona in Chrome? ha funzionato in firefox. upgrade-insecure-requestssembra aggiornare le chiamate http tp https.
Aniket Thakur,

1
È una cattiva idea? Non esiste un motivo per cui esiste la politica di sicurezza?
medley56


10

Ha dato l'errore a causa della sicurezza. per questo si prega di utilizzare "https" non "http" nell'URL del sito Web.

Per esempio :

   "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"

7

Nella pagina pertinente che effettua un https di contenuto misto alla chiamata http che non è accessibile, è possibile aggiungere la voce seguente nel relativo e eliminare l'errore di contenuto misto.

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

5

Ho avuto questo stesso problema perché ho acquistato un modello CSS e ha afferrato un javascript attraverso un file javascript esterno http://whatever.js.com/javascript.js. Sono andato a quella pagina nel mio browser e poi l'ho cambiato https://whatever...usando SSL e ha funzionato, quindi nel mio tag javascript HTML ho appena cambiato l'URL da usare httpsinvece di httpe ha funzionato.


4

Per forzare il reindirizzamento sul protocollo https, puoi anche aggiungere questa direttiva in .htaccess nella cartella principale

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

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

3

@Blender Comment è l'approccio migliore. Non codificare mai il protocollo in nessun punto del codice poiché sarà difficile modificarlo se si passa da httpa https. Dal momento che è necessario modificare manualmente e aggiornare tutti i file.

Questo è sempre meglio in quanto rileva automaticamente il protocollo.

src="//code.jquery.com

2

Ho scoperto che se hai problemi con l'inclusione o la miscelazione della tua pagina con qualcosa come http : //www.example.com, puoi risolverlo inserendo invece // www .example.com


questo ha funzionato per me, grazie. Puoi spiegarmi cosa sta succedendo?
Mantej Singh,

2

Ho riscontrato lo stesso problema quando il mio sito passa da http a https. Abbiamo aggiunto una regola per tutte le richieste di reindirizzamento di http a https.

È necessario aggiungere la regola di reindirizzamento per la richiesta tra siti, ma è necessario rimuovere la regola di reindirizzamento per js / css esterni.


0

Ho appena risolto questo problema aggiungendo il seguente codice nell'intestazione:

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

-9

Se il tuo server di app è weblogic, assicurati che esista la voce WLProxySSL ON (e assicurati anche che non debba essere commentata) nel file weblogic.conf nella directory conf del server web. quindi riavviare il server Web, funzionerà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.