特定のサイトからの「オブジェクトのブロック」を許可する


8

NoScript FireFoxプラグインを使用している特定のサイトで、フォントを含む「ブロックされたオブジェクト」を許可したい。

NoScriptがフォントをブロックする理由は理解していますが、信頼できるいくつかのWebサイトでは、それでもフォントを許可したいと考えています。

私は読んで一つだけのドメインからスクリプトを許可する方法、いくつかの特定のスクリプトを有効にする方法のほかにABEマニュアルを。しかし、私はそれを機能させることはできません。ここで私がTogglに対して試みたいくつかのABEルール:

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

ただし、これらのルールセットのどちらもTogglにフォントを含めることはできません。私がどこで間違っているのかわかりますか?

(FireFox 34.0.5上のNoScript 2.6.9.6rc3)

回答:


5

NOSCRIPTサイトの状態:

たとえば、設定noscript.allowedMimeRegExp値を

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

は、somesite.comからのFRAME / IFRAMEロード、some-other-site.comからのWebフォント、およびからのWebGL 3Dコンテンツを永続的に許可しますhttps://www.khronos.org

ABEができるとは思いません。特定のサイト/ドメインでのみフォントを有効にするハックな方法の1つは、Vimperator / Pentadactylを使用して、LocationChangeイベントでMimeRegExp設定を自動的に変更することです。ページを離れるときに設定を元に戻すには、負の先読みを持つ式を使用する.vimperatorrcでこの単純な関数(Anekosから取得)を使用できます。

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

私はこれをテストしていませんが、テストします。

編集:それはする必要があります

add_AutoCommand('https?:\/\/allow-font-on-this-site\\.com.*', 
    function(){options.setPref("noscript.allowedMimeRegExp",
        "FONT@http://fonts.gstatic.com")}, 
    function(){options.setPref("noscript.allowedMimeRegExp", 
        "")}
);

...しかし、ページがリロードされない限り、noscriptはプリファレンスに反映されないため、手動でリロードするか、 tabs.reload(config.browser.mCurrentTab, false);

ブール値とタイムアウトを設定して、LocationChangeが再度リロードを実行(ループ)しないようにする必要があるようです。おそらく、PageLoadPreイベントの別のautocmdがブール値に使用される可能性があります。これはかなり醜くなっています。ごめんなさい。

ps。単純なURLベースの設定切り替えのより便利なアプリケーションは、明らかにダウンロードディレクトリを変更することです。

編集(2017):uBlock Originを使用すると、特定のタイプのhtmlオブジェクト、ファイル、または動作を明確にターゲットにできます。

動的ルールと静的ルールの両方で、ドメイン/ URLに対してオリジンを許可することを指定しています。これを数年使用しています。タイプには、フォントだけでなく、インラインスクリプトスタイルシート画像オブジェクトスクリプトxmlhttprequestsub_framemediawebsocketpopunderpopupも含まれます。

ルールの例:

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

つまり:

  1. 任意のページから任意の場所へのサードパーティのリクエストをブロックする
  2. どこのページからでもサードパーティのフォントをブロック
  3. ドメインallow-font-on-this-site.com上のページのサードパーティフォントをどこからでも再度有効にする
  4. オプションで、ドメインfont-cdn.orgのオリジンへのページでリクエストを再度有効にします

NOOP(「ノーオペレーション」)我々はまだ(一般的に広告ブロックや悪意のある広告リストとして知られている分散型のルールで定義された)フィルタリング静的ルールを適用します。


1
あなたの完全な答えとあなたがそれに入れた時間をありがとう。
ジュラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.