Google'ın Manifest V3'ü, reklam engelleme Chrome uzantılarının çalışma şeklini değiştirecek: Bu, onları sakatlamak için mi yoksa güvenlik için mi?

click fraud protection

Google Chrome Uzantıları için yakında çıkacak Manifest V3, reklam engelleyicilerin Chrome'da çalışma biçimini değiştirecek. Bu, reklam engelleyiciler ve Google için doğru yol mu?

Google Chrome şu anda piyasada bulunan en popüler platformlar arası web tarayıcısıdır, Küresel tarayıcı kullanım payının %62,7'sini talep ediyor Mayıs 2019'a kadar Apple Safari %15,89 ile ikinci, Mozilla Firefox ise %5,07 ile ikinci sırada yer alıyor. Aslan payı nedeniyle, Google Chrome'un platformu için yaptığı en küçük değişiklik bile dünya çapında milyonlarca kullanıcıyı etkiliyor. Google, Google Chrome Uzantıları için Manifest V3 biçimindeki bir sonraki uzantı manifest sürümünü duyurduğunda, bunu yapacağımızı biliyorduk. Özellikle Google'ın Chrome içinde bir içerik engelleyici API geliştirdiği ortaya çıktığında bazı büyük değişikliklerle karşı karşıyaydık kendisi.

Manifest V3 nedir?

Aktif bir Chrome kullanıcısıysanız şüphesiz birkaç uzantı kullanıyorsunuzdur. Uzantılar, tarayıcı deneyimini özelleştiren küçük yazılım programlarıdır.

Tarayıcının sağladığı API'ler, kullanıcıların işlevselliği ve davranışları bireysel ihtiyaçlarına ve tercihlerine uyacak şekilde uyarlamalarına olanak tanır. Bu uzantılar esas olarak aşağıdakiler aracılığıyla dağıtılır: Chrome Web Mağazası180.000'den fazla uzantıya ev sahipliği yapan.

O zamandan beri Geçen yılın son zamanlarıGoogle, Chrome Uzantıları platformunda "önleyici değişiklikler" olarak sınıflandırılabilecek bir dizi önerilen değişiklik olan "Manifest V3" üzerinde çalışıyor. Olarak Manifest V3 için kamuya açık tartışma belgesi Uzantı bildirimi sürümünün belirli yetenekleri belirli bir uzantı sınıfıyla kısıtlamaya yönelik bir mekanizma olduğunu belirtir. Bu kısıtlamalar minimum sürüm veya maksimum sürüm şeklinde olabilir. Minimum sürümle kısıtlama, daha yeni API'lerin veya yeteneklerin yalnızca daha yeni uzantılar tarafından kullanılabilmesini sağlar maksimum bildirim sürümüyle kısıtlama, eski API'lerin veya yeteneklerin kademeli olarak geliştirilmesine olanak tanır kullanımdan kaldırıldı.

Daha basit bir ifadeyle, yeni bir bildirim sürümü, Chrome'un API'leri ve özellikleri bu yeni bildirim sürümüyle kısıtlamasına olanak tanır. Uzantı geliştiricilerini, kullanıcı üzerindeki olumsuz etkileri nedeniyle belirli eski API'lerden uzaklaşmaya zorlamak için deneyim. Manifest V3'te bir uzantının uygulanması teorik olarak güvenlik, gizlilik ve performans açısından daha güçlü garantiler sağlamalıdır.

Manifest V3'te çok çeşitli değişiklikler özetlenmiş olsa da, en tartışmalı değişiklik Google'ın mevcut engelleme yeteneklerini sınırlama kararıyla ilgilidir. chrome.webRequest API (ve API'yi engellemek yerine gözlem etrafında odaklayın) ve ardından bu engelleme yeteneklerini yeni bir araç aracılığıyla sunun chrome.declarativeNetRequest API'dir. Bu özel değişiklik toplumu alevlendirdi ünlü reklam engelleme uzantısının reklam engelleme mekanizmasını hedef aldığında, uBlock Menşeive 10 Milyondan fazla kullanıcısını doğrudan etkiliyor.

Bu konuyu ele almadan önce, gelin bu durumun nasıl gerçekleştiğine bir göz atalım. webTalebi API şununla karşılaştırılır: bildirimselNetRequest API'dir.

Web İsteği API'si ve Bildirime Dayalı Net İstek API'si

Şimdi

Web İsteğinin resmi açıklaması API'yi şu şekilde açıklamaktadır:

Use the chrome.webRequest API to observe and analyze traffic and to intercept, block, or modify requests in-flight.

Chrome, Web İsteği ile şunu gönderir: Tümü bir ağ isteğindeki verileri, onu dinleyen dahili hatlara iletir. Uzantının daha sonra isteği değerlendirme ve Chrome'a ​​istekle ne yapması gerektiği konusunda talimat verme şansı vardır: buna izin verin, engelleyin veya bazı değişikliklerle gönderin.

Uzantılar Web İsteği API'sini kullandığında neler olduğunu anlamak için olay sırasını takip edin. Web İsteği uzantısı yüklü bir kullanıcı bir bağlantıyı tıkladığında Chrome, istek sunucuya ulaşmadan önce uzantıya bir veri isteğinin yapıldığını bildirir. Uzantı bu aşamada isteği değiştirmeyi seçebilir. Sunucu daha sonra yanıt verir, ancak yanıt bir kez daha uzantıdan geçer ve uzantı, yanıtın değiştirilmesi gerekip gerekmediğini belirleyebilir. Chrome daha sonra sayfayı oluşturur ve kullanıcı, tıklama eyleminin sonucunu görebilir.

Chrome teslim olurken bir ağ isteğindeki tüm verilerWeb İsteği API'sini kullanan uzantılar, bir kullanıcının web'de yaptığı her şeyi okuma ve değiştirme erişimine sahiptir. Dolayısıyla uBlock Origin gibi içerik engelleyiciler bu API'nin potansiyelinden akıllıca yararlanırken Google şunu iddia ediyor: kötü niyetli diğer uzantılar, kullanıcıların kişisel bilgilerine erişim sağlamak için aynı şeyi kötüye kullandı bilgi. Google'a göre kötü amaçlı uzantıların %42'si Ocak 2018'den bu yana Web İsteği API'sini kullanıyor. Google ayrıca, engelleme sürümü olarak API'nin "önemli performans maliyetleri" içerdiğini iddia ediyor Bunun çoğu, 'tembellik' ile temelde bağdaşmayan, ısrarcı ve çoğu zaman uzun süren bir süreç gerektirir. süreçler.

Manifest V3 ile Google, bu API'yi engelleme biçiminde sınırlamayı öneriyor. Alternatif olarak Google, Bildirime Dayalı Net İstek API'sini sağlıyor.

Gelecek

Bildirime Dayalı Net İsteğin resmi açıklaması API'yi şu şekilde açıklamaktadır:

The chrome.declarativeNetRequest API is used to block or modify network requests by specifying declarative rules.

Bildirime Dayalı Net İstek ile Chrome'un bir istekle ilgili tüm bilgileri dinleme uzantısına göndermesi gerekmez. Bunun yerine uzantı, tarayıcıya belirli türdeki isteklerin görülmesi durumunda ne yapması gerektiğini önceden bildiren kuralları Chrome'a ​​kaydeder.

Uzantı, kurallarını önceden belirtir. Kullanıcıların isteği daha sonra tarayıcı (uzantı değil) tarafından bu kurala göre eşleştirilir ve eylem aynı zamanda tarayıcı tarafından da gerçekleştirilir ve ardından sayfa oluşturulur. Google, sonucu belirleyen algoritma üzerinde kontrol sahibi olabildikleri ve verimsiz kuralları önleyebildikleri veya devre dışı bırakabildikleri için bunun verimlilik sağlamalarına olanak tanıdığını belirtiyor. Ayrıca, ağ isteğinin ayrıntıları uzantıya açık olmadığından son kullanıcıya daha iyi gizlilik garantileri sunar. Kalıcı ve uzun süren işlemler artık gerekli olmadığından (kurallar önceden kaydedildiğinden), Google şunu iddia ediyor: Bu yaklaşım aynı zamanda kaynakların kısıtlı olduğu durumlarda uzantıları önemli ölçüde daha uygulanabilir hale getirecek performans iyileştirmelerini de beraberinde getiriyor platformlar.

Bildirime Dayalı Net İstek hem Manifest V2 (geçerli) hem de Manifest V3'te mevcut olacak, ancak Google'ın Manifest V3'te ağ isteklerinin değiştirilmesine izin vermesinin birincil yolu bu olacaktır.

Tartışma

Google'ın değişiklikleri, hikayenin diğer tarafını, özellikle de reklam engelleyicileri duyana kadar anlamlı görünüyor. Bu özel API geçişi, en popüler reklam engelleyicilerden birinin çalışma şeklini temelden değiştirdiği için Google'ın reklam engelleyicileri ortadan kaldırma yöntemi olarak görülüyor. Bu, Google'ın bu değişime kullanıcı güvenliği perspektifinden ziyade iş perspektifinden motive olduğu "teorisi" ile bağlantılıdır. Sonuçta Google, geliri açısından büyük ölçüde reklamlara bağımlıdır ve reklam engelleyiciler, bu cephede Google'ın müşterileri için doğrudan bir tehdit olarak algılanmaktadır. Alphabet'in 2018 SEC Form 10-K başvurusu (aracılığıyla Kayıt):

Yeni ve mevcut teknolojiler, reklamları özelleştirme yeteneğimizi etkileyebilir ve/veya çevrimiçi reklamları engelleyebilir ve bu da işimize zarar verebilir.

Özelleştirilebilir reklamları daha da zorlaştırmak veya reklamların görüntülenmesini tamamen engellemek için teknolojiler geliştirildi ve bazı sağlayıcılar Çevrimiçi hizmetlerin büyük bir kısmı, üçüncü taraf dijital hizmetlerin temel işlevlerine potansiyel olarak zarar verebilecek entegre teknolojilere sahiptir. reklam. Google gelirlerimizin çoğu, çevrimiçi reklamların görüntülenmesiyle bağlantılı olarak bize ödenen ücretlerden elde edilmektedir. Sonuç olarak, bu tür teknolojiler ve araçlar faaliyet sonuçlarımızı olumsuz yönde etkileyebilir.

Google bunu yapmak zorundaydı bir bildiri yayınla Bu sorunu çözmek için, değişikliğin reklam engelleyicilere doğrudan bir saldırı değil, kullanıcı gizliliğinin yararına olduğu yönündeki tutumunu yineledi:

Reklam engelleyicilerin geliştirilmesini engellemiyoruz veya kullanıcıların reklamları engellemesini engellemiyoruz. Bunun yerine, içerik engelleyiciler de dahil olmak üzere geliştiricilerin, kullanıcıların gizliliğini koruyacak şekilde uzantılar yazmalarına yardımcı olmak istiyoruz.

Google Chrome'da bulunan en popüler reklam engelleyicilerden ikisine değinmek gerekiyor: uBlock Menşei Ve reklam engelleyici artı, her ikisi de aynı içerik engelleme sonucunu elde etmek için farklı yaklaşımlar kullanır. uBlock Origin büyük ölçüde Web İsteği API'sine güveniyor ve topluluk yıllar içinde bu uzantıyı tercih etti. Adblock Plus ve diğer içerik engelleme uzantıları da Web İsteğinin engelleme kısmına dayanır, dolayısıyla bu API'de yapılan değişiklikler çoğu içerik engelleyiciyi en azından bir ölçüde etkileyecektir.

Google'ın Web İsteğini kullanımdan kaldırma çabası, esasen uBlock Origin'i mevcut biçiminde sonlandıracak ve bu gerçekten de birçok kullanıcıyı etkileyecektir. Bağlılığı olmayan (ve reklam engelinin nasıl elde edildiğiyle uğraşmaya niyeti olmayan) kullanıcılar, kendi dezavantajlarıyla birlikte gelen alternatif çözümler bulacakken, bu imkansız hale gelecektir. sadık kişiler ve meraklılar için, web sitelerinin bu özel API üzerinde reklam engelleyicilerle mücadele etmek için eninde sonunda bulacağı çeşitli teknikleri aşmak için yeni filtreleme motoru tasarımları bulmaları.

Bildirime Dayalı Net Talebin aynı zamanda oldukça sınırlı bir filtreleme motoru olması da önerildi. başlangıçta planlanmış Uzantı başına statik filtre kurallarında (kurulum sırasında bildirilen kurallar) 30.000 kural sınırına sahip olmak; ve uzantı başına dinamik filtre kurallarında 5.000 kural sınırı (kurulumdan sonra eklenebilecek kurallar). Fazla kurallar göz ardı edilecektir; bu biraz sorun teşkil eder, çünkü Adblock Plus için EasyList'in kendisi 70.000 kurala sahiptir, uBlock Origin ise 100.000'den fazla kuralla çalışacak şekilde yapılandırılabilir. Toplumdan gelen ilk tepkinin ardından Google yanıt verdi Statik kural sınırını uzantı başına 30.000 kuraldan küresel maksimum 150.000 kurala değiştirme sözü vererek. Bu, kullanıcıların diğer kural ağırlıklı komut dosyalarını bir reklam engelleyiciyle birlikte kullanmasını engellemek gibi bir yan etkiye sahiptir, bu nedenle kullanıcıların tercihleri ​​arasında denge kurması gerekecektir.

Sınırlı filtreleme limiti dışında Bildirime Dayalı Net Talep yalnızca statik URL'lere yönlendirme yapabilir, dolayısıyla desen eşleştirme için herhangi bir destek dahil değildir. uBlock Origin büyük ölçüde kalıp eşleştirmeye ve uzantı geliştiricisine güveniyor yenilemenin mümkün olmadığını belirtti API gereksinimlerini karşılamak için uzantısının eşleştirme algoritması. API ayrıca filtre listesini güncellemek için tam bir uzantı güncellemesi gerektirecektir; bu, göz önüne alındığında çok sık yapılan bir etkinlik olacaktır. bu filtre listelerinin güncellenme sıklığı. Elbette bu güncellemeler aynı zamanda Google'ın uzantı inceleme kriterlerine ve süreçlerine de bağlı olacaktır.

Öte yandan Google, Web İsteğinden uzaklaşma niyetinin Web İsteği API'si mevcut haliyle çok güçlü olduğundan ve güvenlik açısından çok geniş bir alan bıraktığından güvenlik perspektifi suistimal etmek. Bu kötüye kullanım yalnızca teorik değildir; Google, kötü amaçlı uzantıların %42'sinin bu API'yi kötüye kullandığını belirtmiştir. Apple Safari'nin İçerik Engelleyici API'si Sahte bir geliştiricinin yararlanabileceği daha az alan olduğundan, benzer nedenlerden dolayı Bildirici Net İsteği gibi tasarlanmıştır. Güçlendirilmiş Web İsteğinde, ağ istekleri hala gözlemlenebilir olacaktır ancak ilgili ana bilgisayarlarda izinlere ihtiyaçları olacaktır. Manifest V3 ile ana bilgisayar izinleri de önemli ölçüde değişiyor ve artık kurulum sırasında kapsamlı bir şekilde verilmiyor.

Google ayrıca geçiş için motivasyon kaynağı olarak performans giderlerini de kullandı. Ağ isteklerinin değerlendirilmesi, uzantının JavaScript iş parçacığında gerçekleşir ve bu, performans açısından maliyetli olabilir. uBlock Origin'in geliştiricisi bir çürütme olarak, uzantısının herhangi bir önemli performans cezasına neden olmaz Uygulanacak 140.000 kadar statik filtreye sahip olsanız bile. Uzak sunuculardan indirilmesi engellenen ve dolayısıyla tarayıcı tarafından işlenmeyen kaynaklar sayesinde ortaya çıkan maliyetlerin kolaylıkla geri kazanılabileceği iddia ediliyor.

Google bu mantığı kullanmasa da, reklam engellemede verimlilik sağlamak amacıyla Web İsteğine karşı bir argüman da ileri sürülebilir. Web İsteği ile, bir uzantı zamanında yanıt vermezse (gecikme veya çökme nedeniyle), ağ işleme isteğine açıkça izin verilir, bu da reklamların reklam engelleyiciden kaçmasına olanak tanır. Öte yandan, Bildirime Dayalı Net Talep bu dezavantajdan etkilenmeyecektir. Bunun yerine, reklamlar statik kurallara takılmazlarsa geçecektir ve bu çoğu zaman gerçekleşecektir.

Çözüm

Yukarıdaki açıklamalardan, Bildirime Dayalı Net İsteğin engelleme için 1:1 işlevsellik klonu olmadığı açıktır. Web İsteği API'sinin yetenekleri ve uzantı geliştiricilerinin sıkı çalışmaları, bu tür değişiklikler. Ancak Google'ın mantığı da önem taşıyor; Web İsteği çok güçlü ve yetkilerinin artırılması gerekiyor. kullanıcı topluluğunun (ortalama kullanıcılarla birlikte meraklıları).

Bildirime Dayalı Net İsteğe geçiş olumlu bir PR hareketi de olabilirdi; sonuçta Google, Chrome'a ​​yerleşik bir içerik engelleyici API ekliyor! Ancak yeni API kendi ağır kısıtlamalarıyla birlikte geldiğinden, topluluk haklı olarak bunu kanatlarının kesilmesi olarak görüyor. İdeal bir dünyada, Google'ın yeni API'yi öne sürmeden önce uBlock Origin gibi reklam engelleyicilerin işleyişini keşfetmesi gerekirdi. Şu anki haliyle yeni API, kullanıcıların filtre ağırlıklı iki uzantı kullanmak isteyeceği senaryolara uyum sağlamak için kural sınırlarında daha fazla gevşeme kullanabilir.

Buna göre KayıtManifest V3 değişikliklerine sahip ilk yapılar Temmuz 2019'dan itibaren satışa sunulacak. Google'ın bu yapılarla uzantı geliştirici topluluğundan aldığı geri bildirimleri dikkate alacağını umuyoruz.


Katkıları ve yardımları için XDA'nın Genel Yayın Yönetmeni Mishaal Rahman'a özel teşekkürler!

Düzenleme: Makale yanlış bir şekilde Adblock Plus'ın çalışmasını Bildirime Dayalı Net İstek API'sininkiyle eşitledi. Madde buna göre değiştirilmiştir. Adblock Plus ayrıca Web İsteği API'sinin engelleme özelliklerinin kaldırılmasından da etkilenecektir.