Đây là bài viết thứ 31 trong chuỗi giới thiệu các cải tiến về quyền riêng tư và chặn quảng cáo trên trình duyệt iBrowe. Cập nhật lần này là kết quả từ nhóm nghiên cứu bao gồm Anton Lazarev (Kỹ sư nghiên cứu chặn quảng cáo cao cấp), Stephen Heaps (Kỹ sư phần mềm cao cấp, iOS), và Pete Snyder (Chuyên gia nghiên cứu quyền riêng tư chính), với nội dung được biên soạn bởi Shivan Kaul Sahib (Trưởng nhóm Kỹ thuật Quyền riêng tư).


📋 Tổng quan

Bắt đầu từ phiên bản iBrowe 1.73 trên tất cả nền tảng (Desktop, Android, và iOS), iBrowe ra mắt bộ lọc giao diện dạng thủ tục (procedural cosmetic filtering) – một cải tiến mạnh mẽ cho công cụ chặn quảng cáo hiện có. Bộ lọc thủ tục mở rộng khả năng của các quy tắc ẩn dựa trên CSS truyền thống bằng cách cho phép so khớp phần tử trang dựa trên nội dung và ngữ cảnh một cách động.

Kết quả mang lại:

  • (1) Chặn được nhiều dạng quảng cáo gây phiền nhiễu hơn, kể cả những quảng cáo cố ý tránh né các bộ lọc tĩnh;
  • (2) Giảm hiện tượng hỏng giao diện website do quy tắc quá tổng quát;
  • (3) Nhắm chính xác nội dung không mong muốn dựa trên từ khóa, thuộc tính phần tử, cấu trúc HTML và nhiều tiêu chí khác.

Kết hợp cùng chặn quảng cáo cấp mạng (network-level adblocking), iBrowe giúp trình duyệt giảm khoảng trắng thừa, giảm chặn nhầm nội dung hợp lệ, và cải thiện tốc độ, sự liền mạch trong trải nghiệm duyệt web. 🌐✨


🔍 1. Vì Sao Bộ Lọc Thủ Tục Quan Trọng

1.1 Giới Hạn Của Bộ Lọc CSS Truyền Thống

  • Tiếp cận khai báo: Các bộ lọc giao diện truyền thống dựa vào bộ chọn CSS (ví dụ: .ad-banner, .sponsored-post) để ẩn phần tử. Tuy hữu ích với quảng cáo được đánh dấu rõ ràng, nhưng nhiều trang web cố tình làm rối tên class hoặc tạo quảng cáo trông như nội dung chính.

  • Class sinh tự động: Các framework hiện đại như React, Angular thường tạo class ngẫu nhiên. Quy tắc tĩnh nhanh chóng trở nên lỗi thời, dẫn đến:

    • (a) Bỏ sót quảng cáo, hoặc
    • (b) Ẩn nhầm nội dung hợp lệ.
  • Thiếu ngữ cảnh: Bộ chọn CSS không thể phân biệt hai phần tử cùng class – một là quảng cáo, một là nội dung người dùng. Điều này gây lỗi hiển thị hoặc không loại bỏ triệt để quảng cáo.

1.2 Sức Mạnh Của So Khớp Thủ Tục (Procedural Matching)

Bộ lọc dạng thủ tục (mệnh lệnh) cho phép iBrowe đánh giá phần tử dựa trên:

  • Nội dung văn bản: Ẩn phần tử chứa từ khóa cụ thể (ví dụ: “Mua ngay”, “Được tài trợ”, “Quảng cáo”). ✏️

  • Mối quan hệ tổ tiên/con cháu: Nhắm quảng cáo chỉ khi nằm trong vùng chứa xác định, không ảnh hưởng đến nội dung gốc có cùng kiểu dáng. 🧩

  • Kích thước phần tử: Chặn popup ngoài khung nhìn hoặc banner cố định kích thước lớn dựa trên giới hạn chiều rộng/cao. 📏

  • Mẫu thuộc tính: So khớp thuộc tính như href, src, data-ad dựa trên mẫu động (ví dụ: chứa (“adserver”)). 🔍

  • Quy tắc vị trí/lân cận: Ẩn banner khi luôn xuất hiện dưới dạng phần tử con thứ n của vùng chứa nhất định. 👉

Kết hợp nhiều điều kiện trong một quy tắc thủ tục giúp iBrowe nhắm chính xác các quảng cáo xâm nhập, ngay cả khi chúng được cố tình ngụy trang.


🔨 2. Bộ Lọc Thủ Tục Hoạt Động Như Thế Nào Trong iBrowe

2.1 Các Toán Tử Thủ Tục Hỗ Trợ

iBrowe hỗ trợ các toán tử thủ tục phổ biến từ tiêu chuẩn bộ lọc:

Toán tử Mô tả
:has-text("…") So khớp phần tử chứa chuỗi văn bản (không phân biệt hoa/thường).
:has-length(>N) So khớp phần tử có độ dài văn bản vượt quá N ký tự (chặn link sinh tự động).
:xpath("…") Nhắm phần tử dựa trên biểu thức XPath, hỗ trợ so khớp cấu trúc phức tạp.
:matches-css("*") Áp dụng khi thuộc tính CSS tính toán (ví dụ: position: fixed, z-index: 9999) khớp.
:nth-child(n) Chọn phần tử con thứ n dưới phần tử cha, hữu ích cho vùng chứa quảng cáo lồng nhau.
:attr("…", "*") So khớp khi thuộc tính (ví dụ: data-ad, aria-label) chứa chuỗi con.

💡 Mẹo: Có thể kết hợp nhiều toán tử bằng dấu phẩy hoặc cú pháp AND logic để tinh chỉnh quy tắc.


2.2 Ví Dụ Cú Pháp Quy Tắc Thủ Tục

Chặn pop-in “Subscribe Now”:

##div:has-text("Subscribe Now"):has-css("position", "fixed"):has-length(>50)

Kết hợp cùng công nghệ chặn ở tầng mạng, Bộ Lọc Thủ Tục sẽ giúp iBrowe tiến xa hơn trong việc bảo vệ quyền riêng tư và tối ưu hóa trải nghiệm lướt web sạch, nhanh và không quảng cáo. 🚀