Chrome Uzantılarında içerik ve ağ filtreleme uygulamanın farklı yolları vardır. Bu kılavuzda, uzantıların kullanabileceği içerik filtreleme özelliklerine ve Chrome Uzantıları tarafından kullanılabilecek farklı filtreleme yaklaşımlarına, tekniklerine ve API'lere genel bir bakış sunulmaktadır.
Ağ isteklerini filtreleyin
Chrome uzantılarında ağ isteklerini filtrelemenin birincil yolu chrome.declarativeNetRequest
API'yi kullanmaktır. Bildirim Temelli Net İstek ile geliştiriciler bildirim temelli kurallar belirterek ağ isteklerini engelleyebilir veya değiştirebilirler. Bildirim Temelli Net İstek kuralı biçimi, çoğu reklam engelleyici tarafından kullanılan filtre listesi söz dizimi özelliklerine dayanır.
Bu kurallar şunları yapabilir:
- Bir ağ isteğini engelleyin.
- URL şemasını güvenli bir şemaya (http to https veya ws to wss) yükseltin.
- Bir ağ isteğini yönlendirme.
- İstek veya yanıt başlıklarını değiştirin.
Chrome, bir uzantıyla birlikte sunulan ve dinamik olarak güncellenen (uzaktan yapılandırma veya kullanıcı girişi gibi) kuralları destekler.
Filtre kurallarını uzantınızla gruplandırma
Uzantı paketinize dahil edilen kurallara "statik kurallar" adı verilir. Bu kurallar, bir uzantı yüklendiğinde veya yeni sürüme geçirildiğinde yüklenir ve güncellenir. Chrome, bir uzantının bildirebileceği statik kural sayısını sınırlar.
Chrome'un, statik Bildirimli Net İstek kuralları için yüklü uzantılarla birlikte kullanılabilecek,300.000 kuraldan oluşan genel bir paylaşılan havuzu vardır. Ayrıca, her uzantıya 30.000 statik kurala izin verildiği garanti edilir. Örneğin, bir kullanıcının yalnızca tek bir içerik filtreleme uzantısı yüklüyse uzantı, en fazla 330.000 statik Bildirim Temelli Net İstek kuralını kullanabilir. Bunun kaç kural olduğunu anlayabilmek için çoğu reklam engelleyici tarafından kullanılan popüler EasyList filtre listesi yaklaşık 35.000 ağ kuralından oluşur.
Statik Bildirim Temelli Net İstek kuralları farklı kural kümeleri olarak düzenlenebilir. Bir uzantı, en fazla 100 statik kural kümesi belirtebilir ve aynı anda bu kural kümelerinden 50 tanesi etkinleştirilebilir.
Çalışma zamanında filtre kurallarını dinamik olarak ekleme
Bazı kurallar uzantıyla birlikte paket haline getirilemez. Bunun yerine, uzantıların bunları çalışma zamanında eklemesi gerekir. Bu kurallara "dinamik kurallar" adı verilir.
Chrome, dinamik Bildirim Temelli Net İstek kuralları için uzantı başına en fazla 30.000 güvenli dinamik kurala izin verir. Çoğu kural güvenli kural olarak kabul edilir: block
, allow
, allowAllRequests
veya upgradeScheme
. Bir kural, güvenli olarak kabul edilmese bile (ör. redirect
) dinamik olarak eklenebilir. Ancak 5.000'lik alt sınır geçerli olacak şekilde bu kural da 30.000 dinamik kural sınırına dahil edilir. Bunu daha iyi anlamak için, kolay liste filtresi listesindeki kuralların% 98-99'u güvenli kurallardır.
İçerik filtreleme uzantıları, bilinen filtreleme kurallarını uzantılarıyla birlikte gruplandırmak ve uzantılarını gerektiğinde sunucularındaki yeni içerik filtreleme kurallarıyla güncellemek için sırasıyla statik ve dinamik kuralları kullanabilir.
Kuralları gözlemlenen isteklere göre uyarlayın
Reklam ekosistemi sürekli olarak geliştiğinden içerik filtrelerinin buna uygun şekilde güncellenmesi gerekir. chrome.webRequest
ve dinamik Bildirim Temelli Ağ İstek kuralları birleştirildiğinde, ağ isteklerini olası gizlilik ihlallerine karşı analiz etmek ve bunları gelecekte engellemek mümkündür.
Temel yaklaşım şu şekildedir:
chrome.webRequest
API'yi kullanarak web isteklerini analiz edin ve gizlilik gereksinimlerinizi karşılamayan istekleri (ör. makine öğreniminden yararlanarak) otomatik olarak tanımlamaya çalışın.- Benzer isteklerin gelecekte engellenmesini sağlamak amacıyla, ikinci adımda tanımlanan her istek için dinamik Bildirim Temelli Ağ İstek kuralı oluşturun.
- (İsteğe bağlı) Belirlenen Bildirim Temelli Net İstek kuralını sunucunuza geri gönderin. Böylece, bir sonraki uzantı güncellemenizde statik Bildirim Temelli Net İstek kuralı olarak eklenebilir.
Bu yaklaşımın avantajı, analizin eş zamansız olarak gerçekleşmesi ve web sitesi performansını olumsuz şekilde etkilememesidir.
Kullanıcıların kendi filtreleme kurallarını tanımlamasına izin ver
Uzantınızda bir filtre yapılandırma kullanıcı arayüzü sağlayarak kullanıcılarınızın kendi içerik filtreleme kurallarını tanımlamasına izin verebilirsiniz. Bu kullanıcı tanımlı kuralları Bildirim Temelli Net İstek kurallarına dönüştürün ve bunları dinamik kurallar olarak ekleyin. Bu kurallar, tarayıcı oturumları ve uzantı yükseltmeleri genelinde geçerli olduğu için kullanıcılar tarafından kullanılmaya devam edecektir. Kullanıcılar bu yaklaşımı kullanarak 30.000'e kadar özel kural ekleyebilir.
Web sayfalarındaki öğeleri filtreleme
Ağ isteklerini filtrelemek, içerik filtrelemenin yalnızca önemli bir parçasıdır. Başka bir önemli bölüm ise istenmeyen içeriği doğrudan web sayfalarından kaldırmaktır. Örneğin, easylist filtre listesi kurallarının% 40'ından fazlası müşterilerin sayfa öğelerini nasıl gizlemesi gerektiğini tanımlar.
Bu işlem, içerik komut dosyaları kullanılarak gerçekleştirilebilir. İçerik komut dosyaları, web sayfaları bağlamında çalışır ve DOM'yi kullanarak bu komut dosyalarında değişiklik yapabilir.
Chrome uzantılarının uzaktan barındırılan kod yürütmesine izin verilmez. Bununla birlikte, bir sunucudan hangi öğelerin gizleneceği ile ilgili veriler, yapılandırma verisi olarak kabul edildiğinden etkilenmez. Bu nedenle, öğe kuralları gerektiğinde çalışma zamanında güncellenebilir.
Politika tarafından yüklenen uzantılardaki ağ isteklerini filtreleyin
Kurumsal ve eğitim amaçlı kullanım alanları genellikle içerik ve ağ filtrelemeye yönelik son derece katı şartlara (ör. isteklerin içeriklerine göre filtrelenmesi) uygulanır. Bu kullanım alanlarını etkinleştirmek için politika tarafından yüklenen uzantılar, ağ isteklerini filtrelemek ve engellemek için ek bir yönteme sahiptir. webRequest
API'deki etkinliklerle birlikte "engelleme" seçeneğini kullanarak, bir isteğin engellenip engellenmeyeceğini belirlemek için her istekte özel mantık yürüten bir programatik içerik filtresi uygulamak mümkündür. Daha yüksek güven düzeyine sahip oldukları için politika tarafından yüklenen uzantılarla sınırlıdır.
Gezinme isteklerine müdahale etme
Gezinme istekleri, Bildirim Temelli Net İstek kuralları kullanılarak filtrelenebilir. Örneğin, kullanıcıyı istenen hedefe yönlendiren izleme URL'lerini atlamak isteyebilirsiniz. Bunu yaparken kullanılacak yaklaşımlardan biri, gezinme isteğini bir uzantı sayfasına (https://tracker.com?redirect=https%3A%2F%2Fexample.com
) bir uzantı sayfasına yönlendirmektir (Bu sayfanın web'de erişilebilir kaynak olarak yapılandırılması gerekir). Daha sonra, yönlendirme hedefini almak ve bağlantı izleyiciyi atlatarak window.location.replace("https://example.com")
kullanarak hedefe yönlendirme yapmak için bir komut dosyası çalıştırır.