2013-01-16 7 views
6

Ich versuche, ein Bookmarklet für youtube und andere Video-Sites zu machen, um einfach Informationen aus dem Video zu erhalten und es woanders zu speichern.Bookmarklet auf https Seite

Ab heute kann ich das anscheinend nicht mehr tun, da youtube sich auf eine https-Verbindung zwingt und von dem, was ich in Chroms Konsolenfenster gelesen habe, läuft das Bookmarklet nicht auf einer https-Seite. Gibt es eine Problemumgehung?

Hier ist der bearbeitete Code:

javascript:(function(){var jsCode=document.createElement('script');jsCode.setAttribute('src','http://[mysite]/b/enter.php?i=userid&r='+Math.random());document.body.appendChild(jsCode);}()); 
+0

Sehen Sie dieses Verhalten in Browsern neben Google Chrome? Welche Browser führen das Bookmarklet aus und welche nicht? – apsillers

+0

Unterstützt Sie die Site https ?? – epascarello

+0

Anscheinend blockiert Chrome es und Firefox nicht. Leider habe ich keine feste IP-Adresse, daher kann ich kein SSL-Zertifikat verwenden. Es ist nur ein Lieblingsprojekt. Wenn ich Nutzer interessiert hätte, könnte ich das ändern oder einen anderen Weg finden, Youtube-Links einfach zu speichern. – maugch

Antwort

6

Google Chrome (und möglicherweise andere Browser?) Blockiert den Zugriff von HTTP-Ressourcen von einem HTTPS-Dokument. Dies dient dazu, "mixed content" -Angriffe zu verhindern, bei denen unsichere HTTP-Skripte intercepted by an attacker während der Übertragung über das Netzwerk und zur Ausführung irgendeiner Art von böswilliger Aktivität (z. B. Leak-Cookies oder vertrauliche Seiteninformationen an Dritte) übertragen werden können. Ein solcher Verstoß würde den von HTTPS gewährten Schutz rückgängig machen.

Chrome verwendet, um eine deutliche Warnung, dass eine unsichere Ressource wurde blockiert, aber jetzt ist es nicht mehr, und alle unsicheren Lasten scheitern still. Die einzige Lösung, die Ihnen zu diesem Zeitpunkt zur Verfügung steht, besteht darin, HTTPS selbst zu verwenden, wenn Sie das Skript bereitstellen.

+0

IE 10 gibt auch die Warnung über unsichere Inhalte und gibt Ihnen die Möglichkeit, den Inhalt laufen zu lassen, erfordert aber eine Aktualisierung, nachdem ich die Option gewählt habe. – YiddishNinja

3

das Bookmarklet auf einer https-Seite nicht

Warum nicht laufen?

Versuchen Sie, selbst zu einer HTTPS-Domäne zu wechseln. Normalerweise wird HTTP-Inhalt blockiert, wenn Sie sich in einer HTTPS-Domäne befinden.

+0

Ich habe kein Zertifikat oder eine feste IP, um das zu tun. – maugch

+0

Testen Sie, ob es funktioniert, wenn Sie zu HTTPS wechseln und ein Zertifikat erhalten, es gibt nicht wirklich viel anderes. – Halcyon

4

Wenn Sie in Firefox ein Bookmarklet ausführen möchten, das http auf einer HTTPS-Seite referenziert, können Sie dies umgehen, indem Sie security.mixed_content.block_active_content vorübergehend deaktivieren. Es gibt zwei Möglichkeiten, dies zu tun.

  1. zu about:config in einem neuen Tab gehen, suchen Sie nach security.mixed_content.block_active_content und dann den Wert auf false wechseln. Führen Sie Ihr Bookmarklet aus und schalten Sie es zurück auf true (da Sie es wahrscheinlich die meiste Zeit eingeschaltet haben möchten).

  2. Verwenden Sie ein Add-on/Erweiterung, um den Block umzuschalten. Eine schnelle Suche ergab Toggle Mixed Active Content, und ein schneller Test schien gut zu funktionieren. Es könnte andere geben.

Viel Spaß und seien Sie vorsichtig. Hier sind Drachen!

1

Ich habe einen Workaround "Fix" für dieses Problem mit einem Greasemonkey userscript erstellt. Sie können jetzt Bookmarklets auf allen CSP- und https: // - Sites haben und Ihre Bookmarklets in einer schönen, leicht zu bearbeitenden Bibliotheksdatei haben, anstatt sie einzeln zu einem Lesezeichen zu zerquetschen.