JustZix-JavaScript-Regeln funktionieren jetzt sogar auf Facebook, X und GitHub
Die Seiten, auf denen Userscript-JS bisher zerbrach — Facebook, X, GitHub und viele andere mit einer strikten Content-Security-Policy — waren auch für JustZix ein Engpass. In Version 3.2.0 haben wir die Engine zur Codeausführung so geändert, dass sie diese Barriere ohne Tricks und ohne Kompromisse beim restlichen Web durchbricht. Hier ist, was sie tut und warum.
Was die CSP eigentlich blockiert hat
Eine Content-Security-Policy mit einer script-src-Direktive, die 'unsafe-eval' und 'unsafe-inline' auslässt, sagt dem Browser: „Führe keinen Code aus, der aus einer Zeichenkette gebaut wurde". Genau diese Policy blockiert das klassische new Function('...code...')(), über das JustZix bis v3.1.x Regel- und Aktions-JS in der MAIN-Welt ausgeführt hat. Die von dieser Einschränkung am schmerzhaftesten betroffene Seite war facebook.com — monatelang in unserem Backlog unter dem Etikett „nicht machbar".
Drei Wege, eine Entscheidung
In v3.2.0 haben wir eine geschichtete Strategie eingeführt — die Erweiterung probiert jeden Pfad, bis einer funktioniert:
chrome.userScripts.execute— die native User-Scripts-API aus Manifest V3. Sie führt Code als Zeichenkette außerhalb der CSP-Welt der Seite aus und funktioniert daher überall, auch bei den striktesten Policies. Sie erfordert die BerechtigunguserScriptsim Manifest (haben wir) und einen einmaligen Schalter „Benutzerskripte zulassen" in den Browser-Erweiterungseinstellungen (Sie klicken ihn, Sie behalten die Kontrolle).new Function— der schnelle, klassische Weg, wenn die CSP der Seite'unsafe-eval'erlaubt. Die meisten gewöhnlichen Seiten tun das (Google, YouTube, Reddit, Wikipedia, Online-Shops), sodass 99 % Ihrer Regeln weiterhin völlig ohne Konfiguration über diesen Pfad laufen.<script src="blob:…">— ein Fallback, der eine lokale Blob-URL erzeugt und sie als klassischesscript-Tag injiziert. Er funktioniert, wenn die CSP der Seiteblob:inscript-srcerlaubt — was facebook.com tut. Damit läuft alles auch dann, wenn der Nutzer „Benutzerskripte" noch nicht aktiviert hat.
Was das in der Praxis bedeutet
JustZix-JS-Regeln, Aktionen und die TEMP-JS-/JS-Konsole-Fenster laufen jetzt auf Seiten, die früher EvalError geworfen haben:
- facebook.com — über den Blob-Skript-Fallback, ganz ohne Konfiguration;
- x.com / twitter.com, github.com, Teile von Banking-Seiten — volle Abdeckung, sobald „Benutzerskripte" aktiviert sind;
- überall sonst — unverändert, das klassische
new Functionwie bisher.
Wenn kein Pfad funktioniert (selten, erfordert, dass die Seite sowohl 'unsafe-eval' als auch blob: verbietet), zeigen das JS-Panel und die JS-Konsole-Fenster in 8 Sprachen eine klare Meldung „Benutzerskripte aktivieren". Ein Klick in den Browser-Einstellungen — und der Rest läuft automatisch.
So aktivieren Sie „Benutzerskripte"
- Chrome / Edge / Opera:
chrome://extensions→ „Entwicklermodus" oben rechts einschalten → JustZix suchen → den Schalter „Benutzerskripte zulassen" umlegen. - Firefox:
about:addons→ JustZix → Schaltfläche „Einstellungen" → die Benutzerskript-Option aktivieren.
Die Berechtigung wird ein für alle Mal gespeichert. Wir haben keinen eigenen Zustimmungsdialog hinzugefügt — dies ist eine bewusste Entscheidung in den Browser-Einstellungen, keine überraschende Aufforderung von uns.
Warum das gegenüber den Alternativen zählt
Userscript-Erweiterungen wie Tampermonkey oder Violentmonkey brauchen, dass die Seite 'unsafe-eval' erlaubt, oder sie verlassen sich auf ihre eigene Sandbox mit Eval. JustZix hat drei Pfade — wo jene also einen „CSP-Fehler" werfen und auf die Gnade des Seitenautors warten, wählen wir geräuschlos eine Alternative. Das ist die größte architektonische Änderung seit Projektbeginn — und diejenige, die die Beispielpakete für Facebook, X und GitHub im Katalog endlich sinnvoll macht.
Siehe auch
- CSS- und JavaScript-Injektion — was die Regel-Engine sonst noch kann
- Output-Konsole-Hook auf CSP-strikten Seiten — die analoge Geschichte für Logs
- JustZix vs. Tampermonkey — der vollständige Vergleich
JustZix installieren — und Regeln auf facebook.com ohne Ausreden schreiben.
Bewerte diesen Beitrag
Noch keine Bewertungen — sei der Erste.