การกรองเนื้อหา

การใช้การกรองเนื้อหาและเครือข่ายในส่วนขยาย Chrome ทำได้หลายวิธี คู่มือนี้แสดงภาพรวมของความสามารถในการกรองเนื้อหาที่ส่วนขยายสามารถใช้ได้ รวมถึงวิธีการ เทคนิค และ API ต่างๆ ในการกรองที่ส่วนขยาย Chrome สามารถใช้ได้

กรองคำขอเครือข่าย

วิธีหลักในการกรองคำขอเครือข่ายในส่วนขยาย Chrome คือการใช้ chrome.declarativeNetRequest API นักพัฒนาฟีเจอร์คำขอสุทธิเชิงประกาศสามารถบล็อกหรือแก้ไขคำขอเครือข่ายด้วยการระบุกฎการประกาศ รูปแบบกฎคำขอสุทธิเชิงประกาศจะขึ้นอยู่กับความสามารถของไวยากรณ์รายการตัวกรองที่ตัวบล็อกโฆษณาส่วนใหญ่ใช้

ซึ่งกฎดังกล่าวสามารถทำสิ่งต่อไปนี้

  • บล็อกคำขอเครือข่าย
  • อัปเกรดรูปแบบ URL เป็นรูปแบบที่ปลอดภัย (http เป็น https หรือ ws เป็น wss)
  • เปลี่ยนเส้นทางคำขอเครือข่าย
  • แก้ไขส่วนหัวคำขอหรือการตอบกลับ

Chrome รองรับกฎที่มาพร้อมกับส่วนขยาย และกฎที่อัปเดตแบบไดนามิก (เช่น เพื่อตอบสนองต่อการกำหนดค่าระยะไกลหรืออินพุตของผู้ใช้)

รวมกฎตัวกรองไว้กับส่วนขยาย

กฎที่รวมอยู่ในแพ็กเกจส่วนขยายจะเรียกว่า "กฎแบบคงที่" กฎเหล่านี้จะติดตั้งและอัปเดตเมื่อมีการติดตั้งหรืออัปเกรดส่วนขยาย Chrome จำกัดจำนวนกฎแบบคงที่ที่ส่วนขยายประกาศได้

สำหรับกฎคำขอสุทธิเชิงประกาศคงที่ Chrome จะมีกลุ่มกฎที่ใช้ร่วมกันทั่วโลกรวม 300,000 ข้อที่ชุดส่วนขยายที่ติดตั้งจะใช้ร่วมกันได้ นอกจากนี้ ส่วนขยายทุกรายการรับประกันได้ว่ากฎแบบคงที่จะอนุญาต 30, 000 ข้อ ตัวอย่างเช่น หากผู้ใช้ติดตั้งส่วนขยายการกรองเนื้อหาเพียง 1 รายการ ส่วนขยายจะใช้กฎคำขอสุทธิของประกาศแบบคงที่ได้สูงสุด 330,000 กฎ หากต้องการทราบจำนวนกฎ รายการตัวกรอง EasyList ยอดนิยมที่ตัวบล็อกโฆษณาส่วนใหญ่ใช้ ประกอบด้วยกฎเครือข่ายประมาณ 35,000 ข้อ

กฎคำขอสุทธิเชิงประกาศแบบคงที่สามารถจัดออกเป็นชุดกฎต่างๆ ได้ ส่วนขยายสามารถระบุชุดกฎแบบคงที่ได้สูงสุด 100 ชุด และเปิดใช้ชุดกฎเหล่านี้ได้พร้อมกันครั้งละ 50 ชุด

เพิ่มกฎตัวกรองแบบไดนามิกขณะรันไทม์

กฎบางข้อไม่สามารถรวมเข้ากับส่วนขยายได้ แต่จะต้องเพิ่มส่วนขยายขณะรันไทม์แทน กฎเหล่านี้เรียกว่า "กฎแบบไดนามิก"

สำหรับกฎคำขอสุทธิเชิงประกาศแบบไดนามิก Chrome จะอนุญาตกฎแบบไดนามิกที่ปลอดภัยได้สูงสุด 30,000 รายการต่อส่วนขยาย กฎส่วนใหญ่ถือเป็นกฎที่ปลอดภัย ได้แก่ block, allow, allowAllRequests หรือ upgradeScheme แม้จะไม่ได้ถือว่ากฎปลอดภัย (เช่น redirect) คุณก็ยังคงเพิ่มกฎแบบไดนามิกได้ แต่ขีดจำกัดสูงสุดต่ำสุดที่ 5,000 ข้อจะนับรวมในขีดจำกัดกฎแบบไดนามิก 30,000 กฎด้วย เพื่อให้เข้าใจได้อย่างชัดเจน กฎ 98-99% ในรายการตัวกรองรายการที่ง่ายถือเป็นกฎที่ปลอดภัย

ส่วนขยายการกรองเนื้อหาสามารถใช้กฎแบบคงที่และแบบไดนามิกตามลำดับเพื่อรวมกฎการกรองที่รู้จักไว้กับส่วนขยาย และเพื่ออัปเดตส่วนขยายด้วยกฎการกรองเนื้อหาใหม่จากเซิร์ฟเวอร์เมื่อจำเป็น

ปรับกฎโดยอิงตามคำขอที่สังเกตได้

ระบบนิเวศของโฆษณามีการเปลี่ยนแปลงอย่างต่อเนื่องและจำเป็นต้องอัปเดตตัวกรองเนื้อหาให้สอดคล้องกัน เมื่อใช้ chrome.webRequest ร่วมกับกฎคำขอสุทธิตามประกาศแบบไดนามิก คุณจะสามารถวิเคราะห์คำขอของเครือข่ายเพื่อหาการละเมิดความเป็นส่วนตัวที่อาจเกิดขึ้น และบล็อกคำขอเหล่านี้ในอนาคตได้

โดยมีวิธีการพื้นฐานดังนี้

  1. วิเคราะห์คำขอเว็บโดยใช้ chrome.webRequest API และพยายามระบุคำขอที่ไม่สอดคล้องกับข้อกำหนดด้านความเป็นส่วนตัวของคุณโดยอัตโนมัติ เช่น โดยใช้แมชชีนเลิร์นนิง
  2. สร้างกฎคำขอสุทธิเชิงประกาศแบบไดนามิกสําหรับคําขอแต่ละรายการที่ระบุในขั้นตอนที่ 2 เพื่อให้ระบบบล็อกคําขอที่คล้ายกันในอนาคต
  3. (ไม่บังคับ) ส่งกฎคำขอสุทธิเชิงประกาศ ( Declarative Net Request) ที่ระบุกลับไปยังเซิร์ฟเวอร์ เพื่อให้สามารถเพิ่มกฎดังกล่าวเป็นกฎคำขอสุทธิเชิงประกาศคงที่ (The Declarative Net Request) แบบคงที่ได้เมื่อมีการอัปเดตส่วนขยายครั้งถัดไป

ประโยชน์ของวิธีนี้คือการวิเคราะห์จะเกิดขึ้นแบบไม่พร้อมกันและไม่ส่งผลเสียต่อประสิทธิภาพของเว็บไซต์

อนุญาตให้ผู้ใช้กำหนดกฎการกรองของตนเอง

คุณสามารถอนุญาตให้ผู้ใช้กำหนดกฎการกรองเนื้อหาของตนเองได้โดยการสร้าง UI การกำหนดค่าตัวกรองในส่วนขยาย แปลงกฎที่ผู้ใช้กำหนดเหล่านี้เป็นกฎคำขอสุทธิเชิงประกาศ และเพิ่มเป็นกฎแบบไดนามิก กฎเหล่านี้จะยังคงใช้งานได้สำหรับผู้ใช้ดังเดิมกับเซสชันของเบราว์เซอร์และการอัปเกรดส่วนขยายต่างๆ หากใช้วิธีนี้ ผู้ใช้จะเพิ่มกฎที่กำหนดเองได้สูงสุด 30,000 รายการ

กรององค์ประกอบบนหน้าเว็บ

การกรองคำขอเครือข่ายเป็นเพียงส่วนสำคัญส่วนหนึ่งในการกรองเนื้อหา อีกส่วนที่สำคัญคือการนำเนื้อหาที่ไม่ต้องการออกจากหน้าเว็บโดยตรง ตัวอย่างเช่น กฎรายการตัวกรองแบบง่ายมากกว่า 40% กำหนดวิธีที่ลูกค้าควรซ่อนองค์ประกอบของหน้า

ซึ่งทำได้โดยใช้สคริปต์เนื้อหา สคริปต์เนื้อหาจะทำงานในบริบทของหน้าเว็บและทำการเปลี่ยนแปลงได้โดยใช้ DOM

ส่วนขยาย Chrome ไม่ได้รับอนุญาตให้เรียกใช้โค้ดที่โฮสต์จากระยะไกล อย่างไรก็ตาม ข้อมูลจากเซิร์ฟเวอร์เกี่ยวกับองค์ประกอบที่จะซ่อนจะไม่ได้รับผลกระทบ เนื่องจากข้อมูลนี้ถือว่าเป็นข้อมูลการกำหนดค่า ดังนั้นกฎองค์ประกอบจะอัปเดตขณะรันไทม์ได้ทุกเมื่อที่จำเป็น

กรองคำขอเครือข่ายในส่วนขยายที่ติดตั้งนโยบาย

กรณีการใช้งานขององค์กรและการศึกษามักมีข้อกำหนดที่เข้มงวดมากในการกรองเนื้อหาและเครือข่าย เช่น การกรองคำขอตามเนื้อหา หากต้องการเปิดใช้กรณีการใช้งานเหล่านี้ ส่วนขยายที่ติดตั้งนโยบายจะมีวิธีเพิ่มเติมในการกรองและบล็อกคำขอของเครือข่าย การใช้ตัวเลือก "การบล็อก" กับเหตุการณ์ใน webRequest API ช่วยให้คุณใช้ตัวกรองเนื้อหาแบบเป็นโปรแกรมที่เรียกใช้ตรรกะที่กำหนดเองกับทุกคำขอเพื่อตัดสินว่าควรบล็อกคำขอหรือไม่ ซึ่งจำกัดไว้เฉพาะส่วนขยายที่ติดตั้งโดยนโยบายเท่านั้น เนื่องจากส่วนขยายเหล่านี้มีระดับความน่าเชื่อถือสูงกว่า

สกัดกั้นคำขอการนำทาง

คุณกรองคำขอการนำทางได้โดยใช้กฎคำขอสุทธิเชิงประกาศ ตัวอย่างเช่น คุณอาจต้องการเลี่ยง URL ติดตามผลที่เปลี่ยนเส้นทางผู้ใช้ไปยังปลายทางที่ต้องการ วิธีหนึ่งในการจัดการปัญหานี้คือการเปลี่ยนเส้นทางคำขอการนำทาง https://tracker.com?redirect=https%3A%2F%2Fexample.com ไปยังหน้าส่วนขยาย (ซึ่งต้องกำหนดค่าเป็นทรัพยากรที่เข้าถึงได้ทางเว็บ) ซึ่งจะเรียกใช้สคริปต์เพื่อดึงข้อมูลเป้าหมายการเปลี่ยนเส้นทางและเปลี่ยนเส้นทางไปยังปลายทางโดยใช้ window.location.replace("https://example.com") เพื่อหลีกเลี่ยงเครื่องมือติดตามลิงก์