Дозволити "блокувати об'єкти" з певного сайту


8

Я хочу дозволити "заблоковані об'єкти", включаючи шрифти, для певних сайтів із плагіном NoScript FireFox.

Я розумію, чому NoScript блокує шрифти , але для кількох надійних веб-сайтів я все ж хочу їх дозволити.

Я читав, як дозволити скрипт лише з одного домену та як включити деякі конкретні сценарії, окрім посібника з ABE . Але я не можу змусити його працювати. Ось кілька правил ABE, які я спробував для Toggl:

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. Бачиш, куди я помиляюся?

(NoScript 2.6.9.6rc3 на FireFox 34.0.5)

Відповіді:


5

на NoScript сайт держави:

Наприклад, встановлення noscript.allowedMimeRegExpзначення переваги

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

назавжди дозволить завантажувати FRAME / IFRAME з somesite.com, веб-шрифти з some-other-site.com та WebGL 3D-вмісту від https://www.khronos.org.

Я не думаю, що АБЕ може це зробити. Один з химерних способів включити шрифт лише для певного сайту / домену - це використовувати Vimperator / Pentadactyl і автоматично змінити налаштування MimeRegExp для події LocationChange. Щоб відновити налаштування під час виходу зі сторінки, ви можете скористатися цією простою функцією (отримано її від Anekos ) у .vimperatorrc, яка використовує вираз із негативним знаком пошуку:

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

Я цього не перевіряв, але буду.

EDIT : так і має бути

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 виконувати (таким чином, циклічно) перезавантажувати знову. Можливо, інший autocmd на події PageLoadPre може бути використаний для булева. Я знаю це дуже некрасиво. Вибачте.

пс. більш корисне застосування простого перефігування на основі URL-адрес очевидно змінює каталог завантажень.

EDIT (2017): за допомогою uBlock Origin ви можете конкретно орієнтуватися на певні типи html-об’єктів, файлів або поведінки.

Як динамічні, так і статичні правила визначають, що джерело дозволено для домену / URL-адреси. Я цим користуюся вже кілька років. Типи включають шрифт , а також вбудований скрипт , таблицю стилів , зображення , об'єкт , скрипт , xmlhttprequest , підрамник , медіа , websocket , popunder та спливаюче вікно .

приклади правил:

* * 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. знову ввімкніть шрифти сторонніх сторінок на сторінці в домені enable-font-on-this-site.com з будь-якого місця
  4. необов’язково повторно увімкнути запит на нашій сторінці для походження в домені font-cdn.org

За допомогою noop ("без операції") ми все ще застосовуємо статичну фільтрацію правил (зазвичай визначаємо в розподілених правилах, відомих як списки рекламних блокувань або неправильної реклами).


1
Дякуємо за вашу ретельну відповідь та час, який ви вклали в неї.
Юра
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.