روش های مختلفی برای پیاده سازی محتوا و فیلتر شبکه در برنامه های افزودنی کروم وجود دارد. این راهنما مروری بر قابلیتهای فیلتر کردن محتوا در دسترس برنامههای افزودنی و روشها، تکنیکها و APIهای فیلترینگ مختلف که میتوانند توسط برنامههای افزودنی Chrome استفاده شوند، ارائه میکند.
درخواست های شبکه را فیلتر کنید
راه اصلی فیلتر کردن درخواستهای شبکه در برنامههای افزودنی Chrome، استفاده از chrome.declarativeNetRequest
API است. با درخواست شبکه اعلامی، توسعه دهندگان می توانند درخواست های شبکه را با تعیین قوانین اعلامی مسدود یا تغییر دهند. فرمت قانون درخواست خالص اعلامی بر اساس قابلیتهای نحو فهرست فیلتر است که توسط اکثر مسدودکنندههای تبلیغات استفاده میشود.
این قوانین قادرند:
- مسدود کردن درخواست شبکه
- طرح URL را به یک طرح امن (http به https یا ws به wss) ارتقا دهید.
- تغییر مسیر درخواست شبکه
- هدر درخواست یا پاسخ را اصلاح کنید.
Chrome از قوانین همراه با یک برنامه افزودنی پشتیبانی می کند و قوانینی که به صورت پویا به روز می شوند (مانند در پاسخ به پیکربندی راه دور یا ورودی کاربر).
قوانین فیلتر را با برنامه افزودنی خود دسته بندی کنید
قوانین موجود در بسته برنامه افزودنی شما "قوانین ثابت" نامیده می شوند. این قوانین هنگام نصب یا ارتقاء یک برنامه افزودنی نصب و به روز می شوند. Chrome تعداد قوانین ثابت را که یک برنامه افزودنی می تواند اعلام کند محدود می کند.
برای قوانین درخواست خالص اعلامی ایستا، Chrome دارای یک مجموعه مشترک جهانی از 300000 قانون است که میتوانند به طور مشترک توسط مجموعه برنامههای افزودنی نصب شده استفاده شوند. علاوه بر این، برای هر برنامه افزودنی 30000 قانون ثابت تضمین شده است. به عنوان مثال، اگر یک کاربر تنها یک پسوند فیلتر محتوا را نصب کرده باشد، برنامه افزودنی میتواند از حداکثر 330000 قانون درخواست خالص اعلامی ثابت استفاده کند. برای دریافت ایده از تعداد این قوانین، لیست فیلتر محبوب EasyList که توسط اکثر مسدودکنندههای تبلیغات استفاده میشود، از حدود 35000 قانون شبکه تشکیل شده است.
قوانین درخواست خالص اعلامی استاتیک را می توان در مجموعه قوانین مختلف سازماندهی کرد. یک برنامه افزودنی می تواند تا 100 مجموعه قوانین ثابت را مشخص کند و 50 مورد از این مجموعه قوانین را می توان همزمان فعال کرد.
به صورت پویا قوانین فیلتر را در زمان اجرا اضافه کنید
برخی از قوانین را نمی توان با برنامه افزودنی همراه کرد. در عوض، افزونهها باید آنها را در زمان اجرا اضافه کنند. به این قوانین «قوانین پویا» می گویند.
برای قوانین درخواست خالص اعلامی پویا، Chrome حداکثر 30000 قانون پویا ایمن را در هر برنامه افزودنی مجاز میکند. اکثر قوانین قوانین ایمن در نظر گرفته می شوند: block
، allow
، allowAllRequests
یا upgradeScheme
. حتی اگر یک قانون ایمن در نظر گرفته نشود (مثلاً redirect
)، همچنان میتوان آنها را به صورت پویا اضافه کرد، اما با حداکثر حد پایینتر 5000 که در حد 30000 قانون پویا نیز حساب میشود. برای در نظر گرفتن این موضوع، 98-99٪ از قوانین موجود در لیست فیلتر easylist قوانین ایمن هستند .
افزونههای فیلتر محتوا میتوانند به ترتیب از قوانین ثابت و پویا برای بستهبندی قوانین فیلتر شناختهشده با پسوند خود و برای بهروزرسانی برنامههای افزودنی خود با قوانین جدید فیلتر محتوا از سرورهای خود در هر زمان که نیاز باشد استفاده کنند.
قوانین را بر اساس درخواست های مشاهده شده تطبیق دهید
اکوسیستم تبلیغات به طور مداوم در حال تحول است و فیلترهای محتوا باید متناسب با آن به روز شوند. با ترکیب قوانین chrome.webRequest
و پویا Net Declarative Request می توان درخواست های شبکه را برای نقض احتمالی حریم خصوصی تجزیه و تحلیل کرد و این موارد را در آینده مسدود کرد.
رویکرد اساسی این است:
- درخواستهای وب را با استفاده از
chrome.webRequest
API تجزیه و تحلیل کنید و سعی کنید بهطور خودکار درخواستهایی را شناسایی کنید که الزامات حریم خصوصی شما را برآورده نمیکنند، مثلاً با استفاده از یادگیری ماشین. - برای هر درخواستی که در مرحله دو شناسایی شده است، یک قانون درخواست خالص اعلامی پویا ایجاد کنید تا درخواست های مشابه در آینده مسدود شوند.
- (اختیاری) قانون درخواست خالص اعلامی شناسایی شده را به سرور خود ارسال کنید تا بتوان آن را به عنوان یک قانون درخواست خالص اعلامی ثابت با به روز رسانی برنامه افزودنی بعدی خود اضافه کرد.
مزیت این رویکرد این است که تجزیه و تحلیل به صورت ناهمزمان انجام می شود و بر عملکرد وب سایت تأثیر منفی نمی گذارد.
به کاربران اجازه دهید قوانین فیلترینگ خود را تعریف کنند
میتوانید به کاربران خود اجازه دهید قوانین فیلتر کردن محتوای خود را با ارائه یک رابط کاربری پیکربندی فیلتر در برنامه افزودنی خود تعریف کنند. این قوانین تعریف شده توسط کاربر را به قوانین درخواست خالص اعلامی تبدیل کنید و آنها را به عنوان قوانین پویا اضافه کنید . این قوانین همچنان برای کاربران در دسترس خواهند بود زیرا در جلسات مرورگر و ارتقاء برنامه های افزودنی ادامه دارند. با استفاده از این رویکرد، کاربران می توانند تا 30000 قانون سفارشی اضافه کنند.
عناصر را در صفحات وب فیلتر کنید
فیلتر کردن درخواست های شبکه تنها یکی از بخش های مهم فیلتر محتوا است. بخش بزرگ دیگر حذف محتوای ناخواسته به طور مستقیم از صفحات وب است. به عنوان مثال، بیش از 40٪ از قوانین لیست فیلتر Easylist ، نحوه پنهان کردن عناصر صفحه را مشخص می کند.
این را می توان با استفاده از اسکریپت های محتوا به دست آورد. اسکریپت های محتوا در زمینه صفحات وب اجرا می شوند و می توانند با استفاده از DOM تغییراتی در آنها ایجاد کنند.
برنامههای افزودنی Chrome مجاز به اجرای کد میزبان از راه دور نیستند. با این حال، دادههای سرور در مورد عناصری که باید پنهان شوند، تحت تأثیر قرار نمیگیرند، زیرا این دادههای پیکربندی در نظر گرفته میشوند، بنابراین، قوانین عنصر را میتوان در زمان اجرا هر زمان که لازم باشد بهروزرسانی کرد.
درخواست های شبکه را در برنامه های افزودنی نصب شده در خط مشی فیلتر کنید
موارد استفاده سازمانی و آموزشی اغلب الزامات بسیار سختگیرانه ای برای فیلتر محتوا و شبکه دارند، مانند فیلتر کردن درخواست ها بر اساس محتوای آنها. برای فعال کردن این موارد استفاده، برنامههای افزودنی نصب شده روی خط مشی راه دیگری برای فیلتر کردن و مسدود کردن درخواستهای شبکه دارند. با استفاده از گزینه "blocking" با رویدادها در webRequest
API، می توان یک فیلتر محتوای برنامه ای را پیاده سازی کرد که منطق سفارشی را در هر درخواست اجرا می کند تا تصمیم بگیرد که آیا یک درخواست مسدود شود یا خیر. این به برنامههای افزودنی نصب شده توسط سیاست محدود میشود، زیرا سطح اعتماد بالاتری دارند.
رهگیری درخواست های ناوبری
درخواست های ناوبری را می توان با استفاده از قوانین درخواست خالص اعلامی فیلتر کرد. به عنوان مثال، ممکن است بخواهید URL های ردیابی را که کاربر را به مقصد مورد نظر خود هدایت می کنند، دور بزنید. یک روش برای رسیدگی به این موضوع، تغییر مسیر درخواست پیمایش https://tracker.com?redirect=https%3A%2F%2Fexample.com
به یک صفحه افزونه (که باید به عنوان یک منبع قابل دسترسی وب پیکربندی شود) است، که سپس یک اسکریپت را اجرا کنید تا هدف تغییر مسیر را استخراج کنید و با استفاده از window.location.replace("https://example.com")
به مقصد هدایت شوید و ردیاب پیوند را دور بزنید.