Warum wird in Firefox plötzlich das Problem "Blockiertes Laden gemischter aktiver Inhalte" angezeigt?

350

Als ich heute Morgen meinen Firefox-Browser auf die neueste Version (von 22 auf 23) aktualisierte, funktionierten einige der wichtigsten Aspekte meines Backoffice (meiner Website) nicht mehr.

Beim Betrachten des Firebug-Protokolls wurden die folgenden Fehler gemeldet:

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

unter anderem Fehler, die dadurch verursacht werden, dass der letztere der beiden oben genannten nicht geladen wird.

Was bedeutet das oben Genannte und wie löse ich es?

Appulus
quelle
Hey, ich habe mich nur dadurch gelöst: googl.com/maps with //www.googl.com/maps Es wird funktionieren, ohne den Inhalt zu blockieren
Ram Balwad
Der E-Commerce-Link ist tot (Fehler - Die von Ihnen angeforderte Seite wurde nicht gefunden)
Soleil - Mathieu Prévot

Antworten:

417

Ich habe diesen Blog-Beitrag gefunden, der ein paar Dinge geklärt hat. Um das relevanteste Bit zu zitieren:

Gemischter aktiver Inhalt ist jetzt in Firefox 23 standardmäßig blockiert!

Was ist gemischter Inhalt?
Wenn ein Benutzer eine über HTTP bereitgestellte Seite besucht, ist seine Verbindung für Abhör- und Man-in-the-Middle-Angriffe (MITM) offen. Wenn ein Benutzer eine Seite besucht, die über HTTPS bereitgestellt wird, wird seine Verbindung zum Webserver authentifiziert und mit SSL verschlüsselt und somit vor Lauschangriffen und MITM-Angriffen geschützt.

Wenn eine HTTPS-Seite jedoch HTTP-Inhalt enthält, kann der HTTP-Teil von Angreifern gelesen oder geändert werden, obwohl die Hauptseite über HTTPS bereitgestellt wird. Wenn eine HTTPS-Seite HTTP-Inhalt enthält, wird dieser Inhalt als "gemischt" bezeichnet. Die Webseite, die der Benutzer besucht, ist nur teilweise verschlüsselt, da ein Teil des Inhalts unverschlüsselt über HTTP abgerufen wird. Der Mixed Content Blocker blockiert bestimmte HTTP-Anforderungen auf HTTPS-Seiten.

In meinem Fall bestand die Lösung darin, einfach sicherzustellen, dass die jqueryIncludes wie folgt lauten (beachten Sie die Entfernung des Protokolls):

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

Beachten Sie, dass die vorübergehende Korrektur darin besteht, auf das Symbol "Schild" in der oberen linken Ecke der Adressleiste zu klicken und "Schutz auf dieser Seite deaktivieren" auszuwählen, obwohl dies aus offensichtlichen Gründen nicht empfohlen wird.

UPDATE: Dieser Link von den Firefox (Mozilla) -Support-Seiten ist auch nützlich, um zu erklären, was gemischten Inhalt ausmacht, und enthält, wie im obigen Absatz angegeben, tatsächlich Details zur Anzeige der Seite, unabhängig davon:

Die meisten Websites funktionieren weiterhin normal, ohne dass Sie etwas unternehmen müssen.

Wenn Sie zulassen möchten, dass der gemischte Inhalt angezeigt wird, können Sie dies einfach tun:

Klicken Sie in der Adressleiste auf das Schildsymbol Mixed Content Shield und wählen Sie im Dropdown-Menü die Option Schutz auf dieser Seite deaktivieren.

Das Symbol in der Adressleiste ändert sich in ein orangefarbenes Warndreieck. Warnidentitätssymbol, um Sie daran zu erinnern, dass unsicherer Inhalt angezeigt wird.

Um die vorherige Aktion zurückzusetzen (gemischten Inhalt erneut zu blockieren), laden Sie einfach die Seite neu.

Appulus
quelle
82
Ein besserer Ansatz wäre, das Protokoll einfach vollständig zu entfernen : src="//code.jquery.com.... Der Browser verwendet das Protokoll, mit dem die Seite geladen wurde.
Blender
17
Oh Mann! Das FF Dev Team hat sich mit dieser coolen Idee, einer völlig unkühlen Implementierung, in den Fuß geschossen. Keine Beharrlichkeit zum Deaktivieren von Seiten und keine Whitelist! (für, wenn Sie eine Website mit gemischtem Inhalt kennen und vertrauen)
Raad
6
@Raad Sie können einer Site mit gemischtem Inhalt einfach nicht vertrauen. Während Websitebesitzer möglicherweise unschuldig sind, sind dies möglicherweise nicht alle Router, die eine http-Anfrage tragen. Ich würde einen Fehlerbericht an die Websitebesitzer senden.
Alpha-Maus
6
@Raad und diese Hunderte, wenn nicht Tausende von Websites sind dabei, Header freizulegen, die möglicherweise persönlich identifizierbare Informationen enthalten, die mit einer SSL-Verbindung verschlüsselt werden sollen. Ehrlich gesagt sehe ich das FF Dev Team darin nicht als verantwortungslose Einheit Materie ...
Assimilater
3
Extrem frustrierend, wenn völlig harmlose Aktionen blockiert werden. Apropos Reißverschluss! Ich habe ein Plugin, das Ziptastic verwendet, um die Stadt und das Bundesland der Postleitzahl, die Sie in ein Adressformular eingeben, nachzuschlagen. Dieses Plugin ist kaputt: Ich möchte nur eine erholsame API verwenden, um ein winziges JSON-Objekt zu greifen - keine Würfel. Dies ist die TSA der Browsersicherheit! Lass uns unsere Hosen zurück haben, um Himmels willen!
Chris Baker
136

Dies bedeutet, dass Sie http von https aus anrufen. Sie können src="//url.to/script.js"in Ihrem Skript-Tag verwenden und es wird automatisch erkannt .

Alternativ können Sie https in Ihrem verwenden, srcauch wenn Sie es auf einer http-Seite veröffentlichen. Dadurch wird das in den Kommentaren erwähnte potenzielle Problem vermieden.

Alain Jacomet Forte
quelle
1
Nur ein Hinweis, wenn er auf einer lokal gespeicherten Webseite verwendet wird, kann dies dazu führen, dass der Browser erfolglos nach dem Skript sucht, was das Laden der Seite erheblich verzögert
binaryfunt
52

Wenn keine Whitelist-Funktion vorhanden ist, müssen Sie die Auswahl "Alles" oder "Nichts" treffen. Sie können das Blockieren gemischter Inhalte vollständig deaktivieren.


Die Nichts-Wahl

Sie müssen die Blockierung gemischter Inhalte für das aktuell aktive Profil dauerhaft deaktivieren.

Geben Sie in der "Awesome Bar" "about: config" ein. Wenn Sie zum ersten Mal hier sind, erhalten Sie die Meldung "Dies kann zum Erlöschen Ihrer Garantie führen!". Botschaft.

Ja, du wirst vorsichtig sein. Ja du versprichst!

Suchen Sie security.mixed_content.block_active_content . Setzen Sie den Wert auf false .


Die All Choice

Die Antwort von iDevelApp ist fantastisch.

DRaehal
quelle
1
Wissen Sie, wie Sie gemischte Inhalte auf Chrome aktivieren können?
Faizan
1
@Faizan: Aus dieser Antwort : "In der Adressleiste am rechten Ende sollte sich ein 'Schild'-Symbol befinden. Sie können darauf klicken, um unsicheren Inhalt auszuführen."
Fuglede
27

Fügen Sie das folgende <meta>Tag in den <head>Abschnitt Ihres Dokuments ein, um den Browser zu zwingen, unsichere Verbindungen (http) durch gesicherte Verbindungen (https) zu ersetzen. Dies kann das Problem mit gemischten Inhalten lösen, wenn die Verbindung https verwenden kann.

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

Wenn Sie blockieren möchten, fügen Sie dem Tag das folgende <head>Tag hinzu:

<meta http-equiv="Content-Security-Policy" content="block-all-mixed-content">
Tapas Talukder
quelle
1
Funktioniert nicht in Chrom? arbeitete in Firefox. upgrade-insecure-requestsscheint http tp https Aufrufe zu aktualisieren.
Aniket Thakur
1
Ist das eine schlechte Idee? Gibt es nicht einen Grund, warum die Sicherheitsrichtlinie existiert?
Medley56
11

Wenn Sie einen internen Dienst über AJAX nutzen, stellen Sie sicher, dass die URL auf https verweist. Dadurch wurde der Fehler für mich behoben.

Anfängliche AJAX-URL: " http://XXXXXX.com/Core.svc/ " + ApiName
Korrigierte AJAX-URL: " https://XXXXXX.com/Core.svc/ " + ApiName,

Bryan Cote-Chang
quelle
10

Es ist der Fehler aus Sicherheitsgründen gegeben. Verwenden Sie dazu bitte "https" und nicht "http" in der Website-URL.

Beispielsweise :

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

Auf der entsprechenden Seite, auf der ein Aufruf von https zu http mit gemischtem Inhalt erfolgt, auf den nicht zugegriffen werden kann, können wir den folgenden Eintrag in den relevanten hinzufügen und den Fehler mit gemischtem Inhalt beseitigen.

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

Ich hatte das gleiche Problem, weil ich eine CSS-Vorlage gekauft habe und ein Javascript und eine externe Javascript-Datei durchgegriffen habe http://whatever.js.com/javascript.js. Ich bin in meinem Browser zu dieser Seite gegangen und habe sie dann in https://whatever...SSL geändert, und es hat funktioniert. In meinem HTML-Javascript-Tag habe ich einfach die URL geändert, die httpsanstelle von verwendet wird, httpund es hat funktioniert.

Bigpotato
quelle
4

Um die Umleitung des https-Protokolls zu erzwingen, können Sie diese Anweisung auch in .htaccess im Stammordner hinzufügen

RewriteEngine on

RewriteCond %{REQUEST_SCHEME} =http

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

@Blender Kommentar ist der beste Ansatz. Codieren Sie das Protokoll niemals fest im Code, da es schwierig ist, es zu ändern, wenn Sie von httpzu wechseln https. Da müssen Sie alle Dateien manuell bearbeiten und aktualisieren.

Dies ist immer besser, da das Protokoll automatisch erkannt wird.

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

Ich habe festgestellt, dass Sie Probleme beim Einfügen oder Mischen Ihrer Seite mit http : //www.example.com haben, indem Sie stattdessen // www .example.com eingeben

irene salomo
quelle
das hat bei mir funktioniert, danke. Können Sie mir erklären, was passiert?
Mantej Singh
2

Ich habe das gleiche Problem, wenn meine Website von http zu https wechselt. Wir haben eine Regel für alle Anfragen hinzugefügt, http an https umzuleiten.

Sie müssen die Umleitungsregel für standortübergreifende Anforderungen hinzufügen, aber Sie müssen die Umleitungsregel für externe js / css entfernen.

Tapas Talukder
quelle
0

Ich habe dieses Problem gerade behoben, indem ich den folgenden Code in die Kopfzeile eingefügt habe:

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

Wenn Ihr App-Server weblogisch ist, stellen Sie sicher, dass der Eintrag WLProxySSL ON in der Datei weblogic.conf im Verzeichnis conf des Webservers vorhanden ist (und auch nicht kommentiert werden sollte). Starten Sie dann den Webserver neu, es wird funktionieren.

Prasad Reddy
quelle