Erlauben Sie "Blockobjekte" von einer bestimmten Site

2953
Jura

Ich möchte "blockierte Objekte", einschließlich Schriftarten, für bestimmte Sites mit dem NoScript FireFox-Plugin zulassen.

Ich verstehe, warum NoScript Schriftarten blockiert, aber für einige vertrauenswürdige Websites möchte ich sie trotzdem zulassen.

Ich habe gelesen, wie man Skripte nur von einer Domäne zulässt und wie man bestimmte Skripte neben dem ABE-Handbuch aktiviert . Aber ich kann es nicht funktionieren lassen. Hier ein paar ABE-Regeln, die ich für Toggl ausprobiert habe:

Site .gstatic.com .bootstrapcdn.com Accept from .toggl.com  Site fonts.gstatic.com maxcdn.bootstrapcdn.com Accept INCLUSION(SCRIPT, OBJ, CSS) from .toggl.com  Site fonts.gstatic.com maxcdn.bootstrapcdn.com Accept from .toggl.com 

Keiner dieser Regelsätze erlaubt jedoch die Aufnahme von Schriftarten für Toggl. Siehst du, wo ich falsch liege?

(NoScript 2.6.9.6rc3 unter FireFox 34.0.5)

8

1 Antwort auf die Frage

5
Bart

Die Noscript-Site besagt:

Setzen Sie den noscript.allowedMimeRegExpPräferenzwert beispielsweise auf

  • FRAME@https?://somesite\.com
  • FONT@https?://some-other-site\.com
  • WebGL@https://www\.khronos\.org

erlaubt das dauerhafte Laden von FRAME / IFRAME von somesite.com, von Webfonts von some-other-site.com und von WebGL 3D-Inhalten https://www.khronos.org.

Ich glaube nicht, dass die ABE das schaffen kann. Um die Schriftart nur für eine bestimmte Site / Domäne zu aktivieren, verwenden Sie Vimperator / Pentadactyl und ändern die MimeRegExp-Einstellung automatisch für ein LocationChange-Ereignis. Um die Einstellung beim Verlassen der Seite rückgängig zu machen, können Sie diese einfache Funktion (von Anekos erhalten ) in .vimperatorrc verwenden, die einen Ausdruck mit einem negativen Lookahead verwendet:

js <<EOM function add_AutoCommand(URI, onEnter, onLeave) { let entered = false; autocommands.add('LocationChange', '(?!' + URI + ')', function () { if (entered) { entered = false; onLeave(); } }); autocommands.add('LocationChange', URI, function () { onEnter(); entered = true; }); } add_AutoCommand(https?://allow-font-on-this-site\.com,  :set! noscript.allowedMimeRegExp="FONT@https?://some-other-site\.com",  :set! noscript.allowedMimeRegExp=" " ); EOM 

Ich habe das nicht getestet, aber ich werde es tun.

EDIT : es sollte sein

add_AutoCommand('https?:\/\/allow-font-on-this-site\\.com.*',  function(),  function() ); 

... aber noscript greift die Einstellung nicht auf, es sei denn, die Seite wird neu geladen, also entweder manuell neu laden oder verwenden tabs.reload(config.browser.mCurrentTab, false);

Es scheint, dass Sie einen Booleschen Wert und ein Timeout festlegen sollten, um zu verhindern, dass LocationChange das erneute Laden erneut ausführt. Möglicherweise wird für das Boolean ein anderes autocmd für das PageLoadPre-Ereignis verwendet. Das wird ziemlich hässlich, weiß ich. Es tut uns leid.

ps. Eine nützlichere Anwendung des einfachen URL-basierten Pref-Wechsels ist das Download-Verzeichnis.

EDIT (2017): Mit uBlock Origin können Sie bestimmte Arten von HTML-Objekten, Dateien oder Verhalten gezielt ansprechen.

Sowohl dynamische als auch statische Regeln legen fest, dass Ursprünge für eine Domäne / einen URL zulässig sind. Ich benutze das jetzt seit einigen Jahren. Zu den Typen gehören Schriftart sowie Inline-Skript, Stylesheet, Bild, Objekt, Skript, Xmlhttprequest, Unterrahmen, Medien, Websocket, Popunder und Popup .

Beispielregeln:

* * 3p block no-remote-fonts: * true no-remote-fonts: allow-font-on-this-site.com false allow-font-on-this-site.com font-cdn.org noop 

was bedeutet:

  1. Blockieren Sie die Anforderung von Drittanbietern von einer beliebigen Seite aus
  2. Blockieren Sie Schriften von Drittanbietern auf einer beliebigen Seite von überall
  3. Aktivieren Sie Schriftarten von Drittanbietern auf einer Seite in der Domäne allow-font-on-this-site.com von überall wieder
  4. Aktivieren Sie optional die Anforderung auf unserer Seite erneut für die Herkunft der Domäne font-cdn.org

Mit noop ('no operation') wenden wir weiterhin eine statische Regelfilterung an (üblicherweise in verteilten Regeln, die als Ad-Blocking- oder Malvertising-Listen bezeichnet werden).

Vielen Dank für Ihre ausführliche Antwort und die Zeit, die Sie in sie investieren. Jura vor 9 Jahren 1