Cho phép 'chặn đối tượng' từ một trang web cụ thể


8

Tôi muốn cho phép "các đối tượng bị chặn", bao gồm phông chữ, cho một số trang web nhất định với plugin NoScript FireFox.

Tôi hiểu tại sao NoScript chặn phông chữ , nhưng đối với một vài trang web đáng tin cậy tôi muốn cho phép chúng dù sao.

Tôi đọc cách chỉ cho phép tập lệnh từ một tên miềncách bật một số tập lệnh cụ thể bên cạnh hướng dẫn ABE . Nhưng tôi không thể làm cho nó hoạt động. Dưới đây là một số quy tắc ABE tôi đã thử cho 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

Tuy nhiên, cả hai bộ quy tắc này sẽ không cho phép bao gồm phông chữ cho Toggl. Bạn có thấy tôi đang đi sai ở đâu không?

(NoScript 2.6.9.6rc3 trên FireFox 34.0.5)

Câu trả lời:


5

các trang web noscript trạng thái:

Ví dụ: đặt noscript.allowedMimeRegExpgiá trị ưu tiên thành

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

sẽ vĩnh viễn cho phép mọi tải FRAME / IFRAME từ somesite.com, phông chữ web từ một số nội dung khác- và trang web 3DGL từ https://www.khronos.org.

Tôi không nghĩ ABE có thể làm được. Một cách khó khăn để chỉ kích hoạt phông chữ cho một trang web / tên miền cụ thể là sử dụng Vimperator / Pentadactyl và tự động thay đổi cài đặt MimeRegExp trên một sự kiện LocationChange. Để hoàn nguyên cài đặt khi rời khỏi trang, bạn có thể sử dụng chức năng đơn giản này (lấy từ Anekos ) trong .vimperatorrc sử dụng biểu thức có giao diện phủ định:

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

Tôi đã không kiểm tra điều này nhưng tôi sẽ.

EDIT : nó nên

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

... nhưng noscript không nhận tùy chọn trừ khi trang được tải lại, do đó, tải lại theo cách thủ công hoặc sử dụng tabs.reload(config.browser.mCurrentTab, false);

Có vẻ như bạn nên đặt boolean và thời gian chờ để ngăn LocationChange thực thi (do đó, lặp lại) tải lại lần nữa. Có lẽ một autocmd khác trong sự kiện PageLoadPre có thể được sử dụng cho boolean. Điều này đang trở nên khá xấu xí tôi biết. Lấy làm tiếc.

ps. một ứng dụng hữu ích hơn của chuyển đổi trước dựa trên URL đơn giản rõ ràng là thay đổi thư mục tải xuống.

EDIT (2017): Với uBlock Origin, bạn có thể nhắm mục tiêu cụ thể một số loại đối tượng, tệp hoặc hành vi html nhất định.

Cả quy tắc động cũng như tĩnh đều xác định rằng nguồn gốc được phép cho một tên miền / url. Tôi đã sử dụng điều này trong một vài năm nay. Các loại bao gồm font chữ cũng như inline-script , stylesheet , hình ảnh , đối tượng , kịch bản , XMLHttpRequest , sub_frame , phương tiện truyền thông , WebSocket , popunderbật lên .

quy tắc ví dụ:

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

có nghĩa là:

  1. chặn yêu cầu của bên thứ ba từ bất kỳ trang nào đến bất cứ đâu
  2. chặn phông chữ của bên thứ ba trên mọi trang từ mọi nơi
  3. bật lại phông chữ của bên thứ ba trên một trang trên tên miền allow-font-on-this-site.com từ bất cứ đâu
  4. tùy chọn kích hoạt lại yêu cầu trên trang của chúng tôi để bắt nguồn từ tên miền font-cdn.org

Với noop ('không hoạt động'), chúng tôi vẫn áp dụng lọc quy tắc tĩnh (thường được xác định trong các quy tắc phân tán được gọi là danh sách chặn quảng cáo hoặc danh sách quảng cáo độc hại).


1
Cảm ơn câu trả lời thấu đáo của bạn và thời gian bạn đưa vào nó.
Jura
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.