Perché sto ottenendo improvvisamente un problema “Bloccato caricamento di contenuti attivi misti” in Firefox?

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 di 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 quest’ultimo dei due sopra non viene caricato.

Che cosa significa quanto sopra e come lo risolvo?

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

Mixed Active Content è ora bloccato per impostazione predefinita in Firefox 23!

Cos’è il contenuto misto?
Quando un utente visita una pagina pubblicata su HTTP, la sua connessione è aperta per attacchi di tipo eavesdropping 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 intercettazioni e attacchi MITM.

Tuttavia, se una pagina HTTPS include contenuto HTTP, la parte HTTP può essere letta o modificata dagli autori di attacchi, anche se la pagina principale viene pubblicata su HTTPS. Quando una pagina HTTPS ha contenuto HTTP, chiamiamo quel contenuto “misto”. La pagina web che l’utente sta visitando è solo parzialmente crittografata, poiché parte del contenuto viene recuperata non crittografata su HTTP. Il mixed content blocker blocca determinate richieste HTTP sulle pagine HTTPS.

La risoluzione, nel mio caso, era semplicemente quella di garantire che i jquery includessero i seguenti (notare la rimozione del protocollo):

   

Tieni presente che la “correzione” temporanea è fare clic sull’icona “scudo” nell’angolo in alto a sinistra della barra degli indirizzi e selezionare “Distriggers protezione in questa pagina”, sebbene ciò non sia consigliato per ovvi motivi.

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

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

Se è necessario consentire la visualizzazione del contenuto misto, è ansible farlo facilmente:

Fai clic sull’icona Scudo misto di contenuti nella barra degli indirizzi e scegli Distriggers protezione in questa pagina dal menu a discesa.

L’icona nella barra degli indirizzi cambierà in un triangolo arancione Avvertenza Icona identity framework per ricordarti che il contenuto non sicuro viene visualizzato.

Per ripristinare l’azione precedente (re-bloccare il contenuto misto), basta ricaricare la pagina.

Significa che stai chiamando http da https. Puoi usare src="//url.to/script.js" nel tuo tag script e lo rileverà automaticamente.

In alternativa puoi usare https in src anche se lo pubblichi su una pagina http. Ciò eviterà il potenziale problema menzionato nei commenti.

In assenza di una funzione di white-list devi fare la scelta “all” o “nothing”. È ansible disabilitare completamente il blocco dei contenuti misti.


The Nothing Choice

Sarà necessario disabilitare permanentemente il blocco dei contenuti misti per il profilo attivo corrente.

Nella “Barra Fantastica”, digita “about: config”. Se questa è la tua prima volta otterrai “Questo potrebbe invalidare la garanzia!” Messaggio.

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

Trova security.mixed_content.block_active_content . Imposta il suo valore su falso .


L’All Choice

La risposta di iDevelApp è fantastica.

Se si desidera consentire la richiesta di Contenuto misto, quindi aggiungere il tag sottostante nel tag .

  

Se vuoi bloccare, aggiungi il tag sottostante nel tag :

  

Se stai utilizzando un servizio interno tramite AJAX, assicurati che l’url punti a https, questo mi ha chiarito l’errore.

URL iniziale AJAX: ” http://XXXXXX.com/Core.svc/ ” + ApiName
URL AJAX corretto: ” https://XXXXXX.com/Core.svc/ ” + ApiName,

È dato l’errore a causa della sicurezza. per questo per favore usa “https” e 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" 

Ho avuto lo stesso problema perché ho acquistato un modello CSS e ho afferrato un javascript un file javascript esterno tramite http://whatever.js.com/javascript.js . Sono andato a quella pagina nel mio browser e poi ho cambiato in https://whatever... usando SSL e ha funzionato, quindi nel mio tag javascript HTML ho appena cambiato l’URL per usare https invece di http e ha funzionato.

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

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

Nella pagina pertinente che rende un contenuto misto https alla chiamata http che non è accessibile, è ansible aggiungere la seguente voce nel relativo ed eliminare l’errore del contenuto misto.

  

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

Questo è sempre meglio in quanto rileva automaticamente il protocollo.

 src="//code.jquery.com 

Ho trovato se hai problemi con l’inclusione o il missaggio della tua pagina con qualcosa come http : //www.example.com, puoi risolvere questo problema inserendo // www .example.com

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.

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