อนุญาตให้ 'บล็อกวัตถุ' จากเว็บไซต์เฉพาะ


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เนื้อหาจาก

ฉันไม่คิดว่า ABE สามารถทำได้ วิธีแฮ็คหนึ่งวิธีในการเปิดใช้งานแบบอักษรสำหรับไซต์ / โดเมนเฉพาะนั้นคือใช้ 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

ฉันยังไม่ได้ทดสอบสิ่งนี้ แต่ฉันจะ

แก้ไข : มันควรจะเป็น

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 อาจถูกใช้สำหรับบูลีน ฉันรู้ว่ามันน่าเกลียดมาก ขอโทษ

PS แอปพลิเคชันที่มีประโยชน์มากขึ้นของการสลับ pref พื้นฐานที่ใช้ URL อย่างง่ายคือการเปลี่ยนไดเรกทอรีดาวน์โหลด

แก้ไข (2017): ด้วยuBlock Originคุณสามารถกำหนดเป้าหมายเฉพาะของวัตถุ html ไฟล์หรือพฤติกรรมบางประเภทได้

กฎทั้งแบบไดนามิกและแบบสแตติกระบุว่าอนุญาตให้กำเนิดจากโดเมน / URL ฉันใช้สิ่งนี้มาหลายปีแล้ว ประเภทรวมถึงตัวอักษรเช่นเดียวกับอินไลน์สคริปต์ , สไตล์ชีต , ภาพ , วัตถุ , สคริปต์ , XMLHttpRequest , sub_frame , สื่อ , WebSocket , ป๊อปอันเดอร์และป๊อปอัพ

กฎตัวอย่าง:

* * 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. เปิดใช้งานแบบอักษรของบุคคลที่สามอีกครั้งบนหน้าเว็บในโดเมนที่อนุญาตให้ --ont-on-this-site.comจากที่ใดก็ได้
  4. เลือกที่จะเปิดใช้งานคำขอบนหน้าของเราไปที่จุดเริ่มต้นในโดเมน font-cdn.org

ด้วยnoop ('ไม่มีการทำงาน') เรายังคงใช้การกรองกฎแบบคงที่ (โดยทั่วไปกำหนดไว้ในกฎการกระจายที่รู้จักกันในชื่อการปิดกั้นโฆษณาหรือรายการโฆษณามัลแวร์)


1
ขอบคุณสำหรับคำตอบอย่างละเอียดและเวลาที่คุณใส่ลงไป
Jura
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.