IE9 HTTPS Sicherheit wird durch meinen Greasemonkey-Skript kompromittiert?
-
29-09-2019 - |
Frage
Ich habe ein Greasemonkey-for-IE Skript in IE9 bekam die jQuery importieren. Aber auf sicheren Seiten es nicht funktioniert.
Ich erhalte:
SEC7111: HTTPS security is compromised by http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js
Der Code, der nicht ist:
var script = document.createElement("script");
script.setAttribute("src",
"http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
Wie kann ich diese Arbeit machen? Das Skript stellt kein Problem in Firefox verursachen.
Lösung
Vermutlich: Verwenden Sie https: //ajax.googleapis .com / ajax / libs / jquery / 1.4.2 / jquery.min.js statt (oder einem dritten nicht vertrauen CDN (beide vertrauenswürdig und nicht gefährdet) für Ihre sichere Seiten sein)
Andere Tipps
Sie können mit einfacher Code, um das Problem zu beseitigen, indem ein Schema-relative URL wie folgt aus:
var script = document.createElement("script");
script.setAttribute("src",
"//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js");
Dieses http://
auf einer http://
Seite und https://
auf einer https://
Seite verwenden ... eine viel einfachere Art und Weise, das Problem zu lösen.
Die Fehlermeldung ist neue Art der IE der Warnung über gemischte Inhalte (HTTP und HTTPS-Ressourcen auf einer sicheren Seite). hier ist eine verwandte MSDN Blog-Post.
Mit
https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js
als auch scheint zu funktionieren, obwohl ich nicht einen offiziellen Verweis darauf in der Bibliotheken API Übersicht.
Das Problem ist, dass, wenn Sie im sicheren Modus sind (dh HTTPS), werden alle Dateien, die von der Seite geladen auch HTTPS sein muss. Die JQuery sind Sie machen hier ist HTTP.
Sie müssen erkennen, ob die Seite in HTTP- oder HTTPS-Modus (Verwendung window.location.protocol()
), und stellen Sie die URL des JQuery Anzug umfassen. (Alles was man braucht, ist die zusätzliche 's' nach 'http')
Sie verwenden https-Verbindung und Sie eine HTTP-Verbindung zugreifen zu können.