Google Manifest V3 akan mengubah cara kerja memblokir ekstensi iklan Chrome

Posted on

Google Manifest V3 akan mengubah cara kerja memblokir ekstensi iklan Chrome –  Google Chrome adalah browser web lintas platform paling populer yang tersedia di pasaran saat ini, mengklaim 62,7% pangsa penggunaan browser global hingga Mei 2019, dengan Apple Safari berada di urutan kedua dengan 15,89% dan Mozilla Firefox mengklaim 5,07%. Karena bagian terbesarnya, perubahan terkecil yang dilakukan Google Chrome untuk platformnya akhirnya mempengaruhi jutaan pengguna di seluruh dunia. Jadi ketika Google mengumumkan versi manifes ekstensi berikutnya dalam bentuk Manifest V3 untuk Google Chrome Extensions, kami tahu bahwa kami ada dalam beberapa perubahan besar, terutama ketika diketahui bahwa Google sedang membangun API pemblokir konten di dalam Chrome itu sendiri.

Apa itu Manifest V3?

Jika Anda adalah pengguna Chrome yang aktif, Anda pasti menggunakan beberapa ekstensi. Ekstensi adalah program perangkat lunak kecil yang menyesuaikan pengalaman menjelajah menggunakan API yang disediakan browser , memungkinkan pengguna untuk menyesuaikan fungsionalitas dan perilaku agar sesuai dengan kebutuhan dan preferensi masing-masing. Ekstensi ini didistribusikan terutama melalui Toko Web Chrome , yang menampung lebih dari 180.000 ekstensi.

Sejak akhir tahun lalu , Google telah mengerjakan “Manifest V3,” serangkaian usulan perubahan pada platform Chrome Extensions yang dapat digolongkan sebagai “breaking changes.” Sebagaimana dokumen diskusi publik untuk Manifest V3 menyatakan, versi manifes ekstensi adalah mekanisme untuk membatasi kemampuan tertentu ke kelas ekstensi tertentu. Pembatasan ini bisa dalam bentuk versi minimum atau versi maksimum. Membatasi ke versi minimum memungkinkan API atau kemampuan yang lebih baru hanya tersedia untuk ekstensi yang lebih baru sementara membatasi ke versi manifes maksimum memungkinkan API atau kemampuan yang lebih lama secara bertahap dihentikan.

Dalam istilah yang lebih sederhana, versi manifes baru memungkinkan Chrome untuk membatasi API dan fitur untuk versi manifes baru ini, untuk memaksa pengembang ekstensi untuk bermigrasi dari API lama yang lebih lama karena dampak negatifnya pada pengalaman pengguna. Menerapkan ekstensi dalam Manifest V3 secara teoritis harus memberikan jaminan yang lebih kuat dari perspektif keamanan, privasi, dan kinerja.

Meskipun ada berbagai perubahan yang diuraikan dalam Manifest V3, perubahan paling kontroversial terkait dengan keputusan Google untuk membatasi kemampuan memblokir yang ada di API chrome.webRequest yang ada (dan memfokuskan API di sekitar pengamatan alih-alih memblokir) dan kemudian menyajikan pemblokiran ini kemampuan melalui API chrome.declarativeNetRequest baru . Perubahan khusus ini telah meradang komunitas karena akhirnya menargetkan mekanisme pemblokiran iklan dari ekstensi pemblokiran iklan yang terkenal, uBlock Origin , dan secara langsung memengaruhi 10 Juta + penggunanya.

Sebelum kita membahas masalah ini, mari kita lihat bagaimana perbandingan webRequest API dengan declarativeNetRequest API.

API Permintaan Web dan API Permintaan Net Deklaratif

Deskripsi resmi Permintaan Web menggambarkan API sebagai berikut:

Gunakan dengan   API untuk mengamati dan menganalisis lalu lintas dan untuk mencegat , blok , atau memodifikasi permintaan di - penerbangan .chrome.webRequest

Dengan Permintaan Web, Chrome mengirim semua data dalam permintaan jaringan ke ekstensi untuk mendengarkannya. Ekstensi kemudian memiliki kesempatan untuk mengevaluasi permintaan dan menginstruksikan Chrome tentang apa yang harus dilakukan dengan permintaan: mengizinkannya, memblokirnya, atau mengirimkannya dengan beberapa modifikasi.

Diagram Web Request Api

Ikuti di sepanjang urutan peristiwa untuk memahami apa yang terjadi ketika ekstensi menggunakan API Permintaan Web. Ketika pengguna dengan ekstensi Permintaan Web memasang klik pada tautan, Chrome memberi tahu ekstensi bahwa permintaan data telah dibuat sebelum permintaan mencapai server. Ekstensi dapat memilih untuk mengubah permintaan pada tahap ini. Server kemudian merespons, tetapi respons sekali lagi melewati ekstensi, dan ekstensi dapat menentukan apakah respons perlu diubah. Chrome akhirnya merender halaman dan pengguna dapat melihat hasil dari tindakan kliknya.

Saat Chrome menyerahkan semua data dalam permintaan jaringan , ekstensi yang menggunakan API Permintaan Web memiliki akses untuk membaca dan mengubah semua yang dilakukan pengguna di web. Jadi, sementara pemblokir konten seperti uBlock Origin dengan bijak memanfaatkan potensi API ini, Google mengklaim bahwa ekstensi lain dengan niat jahat telah menyalahgunakan yang sama untuk mendapatkan akses ke informasi pribadi pengguna. Menurut Google, 42% ekstensi berbahaya telah menggunakan API Permintaan Web sejak Januari 2018. Google juga mengklaim bahwa ada “biaya kinerja yang signifikan” yang terlibat dengan API karena versi pemblokirannya memerlukan proses yang terus-menerus dan sering berjalan lama yang pada dasarnya tidak kompatibel dengan proses ‘malas’.

Dengan Manifest V3, Google mengusulkan untuk membatasi API ini dalam bentuk pemblokirannya. Sebagai alternatif, Google menyediakan API Permintaan Net Deklaratif.

Masa depan

Deskripsi resmi Deklaratif Permintaan Net menggambarkan API sebagai berikut:

The API yang digunakan untuk memblokir atau memodifikasi permintaan jaringan dengan menetapkan aturan deklaratif . chrome.declarativeNetRequest

Dengan Permintaan Net Deklaratif, Chrome tidak perlu mengirim semua informasi tentang permintaan ke ekstensi mendengarkan. Sebagai gantinya, ekstensi mendaftar aturan dengan Chrome yang memberi tahu browser sebelumnya tentang apa yang harus dilakukan jika jenis permintaan tertentu terlihat.

Net Request Api

Ekstensi menentukan aturannya sebelumnya. Permintaan pengguna kemudian dicocokkan dengan aturan ini oleh browser (dan bukan ekstensi), dan tindakan juga dilakukan oleh browser, dan halaman tersebut kemudian diberikan. Google menyebutkan bahwa ini memungkinkan mereka untuk memastikan efisiensi karena mereka dapat melakukan kontrol atas algoritma yang menentukan hasil dan dapat mencegah atau menonaktifkan aturan yang tidak efisien. Ini juga memberikan jaminan privasi yang lebih baik kepada pengguna akhir karena rincian permintaan jaringan tidak terpapar ke ekstensi. Karena proses yang terus-menerus dan berjalan lama tidak diperlukan lagi (karena peraturan sudah didaftarkan sebelumnya), Google mengklaim bahwa pendekatan ini juga membawa peningkatan kinerja yang akan membuat ekstensi secara signifikan lebih layak pada platform yang dibatasi sumber daya.

Permintaan Net Deklaratif akan tersedia untuk Manifest V2 (saat ini) dan Manifest V3, tetapi itu akan menjadi cara utama bahwa Google akan memungkinkan permintaan jaringan untuk diubah dalam Manifest V3.

Kontroversi itu

Perubahan Google tampaknya masuk akal sampai Anda mendengar sisi lain dari cerita, terutama yang dari pemblokir iklan. Migrasi API khusus ini sedang dilihat sebagai cara Google untuk mematikan pemblokir iklan karena secara mendasar mengubah cara salah satu pemblokir iklan paling populer bekerja. Ini terkait dengan “teori” bahwa Google termotivasi terhadap perubahan ini lebih dari perspektif bisnis daripada dari perspektif keamanan pengguna. Lagipula, Google sangat bergantung pada iklan untuk pendapatannya, dan pemblokir iklan dianggap sebagai ancaman langsung bagi klien Google di bagian depan ini, seperti yang diungkapkan melalui pengajuan Formulir 10-K Alphabet Alphabet 201K (via The Register ):

Teknologi baru dan yang sudah ada dapat memengaruhi kemampuan kami untuk menyesuaikan iklan dan / atau dapat memblokir iklan secara online, yang akan membahayakan bisnis kami.

Teknologi telah dikembangkan untuk membuat iklan yang dapat disesuaikan lebih sulit atau untuk memblokir tampilan iklan sama sekali dan beberapa penyedia layanan online memiliki teknologi terintegrasi yang berpotensi merusak fungsi inti dari iklan digital pihak ketiga. Sebagian besar pendapatan Google kami berasal dari biaya yang dibayarkan kepada kami sehubungan dengan tampilan iklan online. Akibatnya, teknologi dan alat tersebut dapat mempengaruhi hasil operasi kami.

Google harus merilis pernyataan untuk mengatasinya, menegaskan kembali pendiriannya bahwa perubahan itu demi privasi pengguna dan bukan serangan langsung terhadap pemblokir iklan:

Kami tidak mencegah pengembangan pemblokir iklan atau menghentikan pengguna agar tidak memblokir iklan.Sebaliknya, kami ingin membantu pengembang, termasuk pemblokir konten, menulis ekstensi dengan cara yang melindungi privasi pengguna.

Referensi perlu dibuat untuk dua pemblokir iklan paling populer yang tersedia di Google Chrome: uBlock Origin dan Adblock Plus , keduanya mengambil pendekatan berbeda untuk mencapai hasil yang sama dari pemblokiran konten. uBlock Origin sangat bergantung pada API Permintaan Web, dan komunitas telah memilih preferensi untuk ekstensi ini selama bertahun-tahun. Adblock Plus dan ekstensi pemblokiran konten lainnya juga bergantung pada bagian pemblokiran Permintaan Web, sehingga perubahan pada API ini pada akhirnya akan memengaruhi sebagian besar pemblokir konten setidaknya dalam beberapa kapasitas.

Dorongan Google untuk mencabut Permintaan Web pada dasarnya akan membunuh uBlock Origin dalam formatnya saat ini, sesuatu yang memang akan memengaruhi banyak pengguna. Sementara pengguna tanpa kesetiaan (dan tidak ada niat untuk mengganggu diri sendiri dengan bagaimana blok iklan dicapai) akan menemukan solusi alternatif yang datang dengan kelemahan mereka sendiri, itu akan menjadi mustahil bagi loyalis dan penggemar untuk datang dengan desain mesin filter baru untuk menghindari berbagai teknik yang akhirnya muncul di situs web untuk memerangi pemblokir iklan di API khusus ini.

Permintaan Net Deklaratif juga diusulkan untuk menjadi mesin penyaringan yang agak terbatas, karena pada awalnya direncanakan memiliki 30.000 aturan batas pada per-ekstensi aturan filter statis (aturan yang dinyatakan selama instalasi); dan 5.000 batas aturan tentang aturan filter dinamis per ekstensi (aturan yang dapat ditambahkan setelah instalasi). Setiap kelebihan aturan akan diabaikan, yang merupakan sedikit masalah karena EasyList untuk Adblock Plus sendiri memiliki 70.000 aturan, sementara uBlock Origin dapat dikonfigurasi untuk dijalankan dengan lebih dari 100.000 aturan. Setelah reaksi awal dari komunitas, Google meresponsdengan berjanji untuk mengubah batas aturan statis dari 30.000 aturan per-ekstensi ke maksimum global 150.000 aturan. Ini kemudian memiliki efek samping untuk mencegah pengguna menggunakan skrip aturan-berat lainnya dalam hubungannya dengan pemblokir iklan, sehingga pengguna harus menyesuaikan dengan preferensi mereka.

Selain batas pemfilteran terbatas, Permintaan Net Deklaratif hanya dapat mengalihkan ke URL statis , sehingga tidak ada dukungan yang disertakan untuk pencocokan pola. uBlock Origin sangat bergantung pada pencocokan pola, dan pengembang ekstensi menyatakan bahwa tidak mungkin untuk memperbaiki algoritma pencocokan ekstensinya untuk memenuhi persyaratan API. API juga akan memerlukan pembaruan ekstensi lengkap untuk sekadar memperbarui daftar filter, yang akan menjadi kegiatan yang terlalu sering mengingat frekuensi pembaruan daftar filter ini . Tentu saja, pembaruan ini juga bergantung pada kriteria dan proses peninjauan ekstensi Google.

Di sisi lain, Google selalu mempertahankan pendiriannya bahwa niatnya untuk pindah dari Permintaan Web adalah dari perspektif keamanan, karena API Permintaan Web terlalu kuat dalam bentuknya saat ini dan menyisakan ruang yang sangat luas untuk penyalahgunaan. Penyalahgunaan ini tidak hanya teoretis, karena Google telah menyebutkan bahwa 42% ekstensi jahat telah menyalahgunakan API ini. API Blocker Konten Apple Safari dirancang seperti Permintaan Net Deklaratif untuk alasan yang sama, karena ada lebih sedikit ruang untuk dieksploitasi oleh pengembang jahat. Pada Permintaan Web yang nerfed, permintaan jaringan masih dapat diamati, tetapi permintaan tersebut akan memerlukan izin pada host yang relevan. Dengan Manifest V3, izin host juga berubah secara signifikan dan mereka tidak lagi dapat diberikan secara selimut pada waktu instalasi.

Google juga menggunakan overhead kinerja sebagai motivator untuk peralihan. Evaluasi permintaan jaringan terjadi di utas JavaScript ekstensi, yang bisa sangat mahal kinerjanya. Sebagai bantahan, pengembang uBlock Origin menyebutkan bahwa ekstensinya tidak dikenakan penalti kinerja yang signifikan bahkan ketika memiliki sebanyak 140.000 filter statis untuk ditegakkan. Biaya yang dikeluarkan diklaim dapat dengan mudah dipulihkan oleh sumber daya yang dicegah agar tidak diunduh dari server jarak jauh dan karenanya tidak diproses oleh browser.

Meskipun Google tidak menggunakan alasan ini, satu argumen terhadap Permintaan Web juga dapat dibuat untuk efisiensi dengan pemblokiran iklan. Dengan Permintaan Web, jika ekstensi tidak merespons dalam waktu (karena kelambatan atau kerusakan), permintaan penanganan jaringan jelas diizinkan, yang memungkinkan iklan masuk melalui pemblokir iklan. Permintaan Net deklaratif, di sisi lain, tidak akan menderita dari kelemahan ini. Sebaliknya, iklan akan melewati jika mereka tidak terjebak dalam aturan statis, dan ini akan terjadi lebih sering daripada tidak.

Kesimpulan

Dari penjelasan di atas, jelas bahwa Declarative Net Request bukan klon fungsionalitas 1: 1 untuk kemampuan pemblokiran API Permintaan Web, dan pengembang ekstensi pasti akan jengkel ketika kerja keras mereka akan menjadi cacat oleh perubahan tersebut. Tetapi alasan Google juga membawa bobot – Permintaan Web terlalu kuat, dan kekuatannya perlu dikurangi untuk kepentingan yang lebih besar dari komunitas pengguna (yang terdiri dari pengguna rata-rata bersama dengan penggemar).

Langkah menuju Declarative Net Request bisa menjadi langkah PR positif juga – lagipula, Google menambahkan API pemblokir konten bawaan ke Chrome! Tetapi karena API baru hadir dengan batasan beratnya sendiri, komunitas berhak melihat ini sebagai guntingan sayap mereka. Di dunia yang ideal, Google seharusnya mengeksplorasi kerja pemblokir iklan seperti uBlock Origin sebelum mendorong API baru. Seperti yang ada sekarang, API baru dapat menggunakan relaksasi lebih lanjut pada batas aturannya untuk mengakomodasi skenario di mana pengguna ingin menggunakan dua ekstensi yang berat filter.

Menurut The Register , build pertama dengan perubahan Manifest V3 akan tersedia mulai Juli 2019 dan seterusnya. Kami berharap Google mengakomodasi umpan balik yang diterima dari komunitas pengembang ekstensi dengan build ini.

Leave a Reply

Your email address will not be published. Required fields are marked *