تصفية المحتوى

هناك طرق مختلفة لتنفيذ فلترة المحتوى والشبكات في إضافات Chrome. يقدِّم هذا الدليل نظرة عامة على إمكانات فلترة المحتوى المتاحة للإضافات وأساليب وأساليب وواجهات برمجة تطبيقات الفلترة المختلفة التي يمكن أن تستخدمها إضافات Chrome.

فلترة طلبات الشبكة

إنّ الطريقة الأساسية لفلترة طلبات الشبكة في إضافات Chrome هي استخدام chrome.declarativeNetRequest API. باستخدام نموذج البيان الشبكي، يمكن للمطورين حظر طلبات الشبكة أو تعديلها من خلال تحديد قواعد تعريفية. يستند تنسيق قاعدة طلب الشبكة الإعلانية إلى إمكانات بنية قائمة الفلاتر المستخدَمة من قِبل معظم أدوات حظر الإعلانات.

يمكن لهذه القواعد إجراء ما يلي:

  • حظر طلب شبكة
  • عليك ترقية مخطط عنوان URL إلى مخطط آمن (من http إلى https أو ws إلى wss).
  • إعادة توجيه طلب الشبكة.
  • تعديل عناوين الطلبات أو الاستجابة

يتيح Chrome القواعد التي يتم تضمينها بالإضافة إلى القواعد التي يتم تعديلها ديناميكيًا (مثلاً، عند الاستجابة لضبط عن بُعد أو إدخال المستخدم).

قواعد فلاتر الحزم مع إضافتك

يُطلق على القواعد المضمّنة في حزمة الإضافات اسم "القواعد الثابتة". يتم تثبيت هذه القواعد وتحديثها عند تثبيت أي إضافة أو ترقيتها. يحدّ Chrome من عدد القواعد الثابتة التي يمكن للإضافة الإفصاح عنها.

بالنسبة إلى قواعد طلب البيانات الثابتة والثابتة، يتوفّر في Chrome مجموعة مشتركة عامة تضم 300,000 قاعدة يمكن استخدامها بشكل مشترَك من خلال مجموعة الإضافات المثبَّتة. بالإضافة إلى ذلك، تضمن كل إضافة 30000 قاعدة ثابتة. على سبيل المثال، إذا كان لدى المستخدم إضافة واحدة فقط لفلترة المحتوى مُثبَّتة، يمكن لهذه الإضافة استخدام ما يصل إلى 330,000 قاعدة ثابتة لطلبات البيانات الصافية. للحصول على فكرة عن عدد القواعد هذه، تتألّف قائمة فلاتر القائمة السهلة الشائعة، التي تستخدمها معظم أدوات حظر الإعلانات، من 35,000 قاعدة شبكة تقريبًا.

يمكن تنظيم قواعد طلب الشبكة الإعلانية الثابتة في مجموعات مختلفة. يمكن أن تحدد الإضافة ما يصل إلى 100 مجموعة قواعد ثابتة ويمكن تفعيل 50 مجموعة قواعد منها في آنٍ واحد.

إضافة قواعد الفلترة ديناميكيًا في وقت التشغيل

لا يمكن استخدام بعض القواعد في حزمة مع الإضافة. بدلاً من ذلك، يجب أن تُدرِج الإضافات في وقت التشغيل. تُعرف هذه القواعد باسم "القواعد الديناميكية".

بالنسبة إلى قواعد طلب البيانات الديناميكية الديناميكية، يسمح Chrome بعرض 30,000 قاعدة ديناميكية آمنة كحد أقصى لكل إضافة. تُعتبر معظم القواعد قواعد آمنة: block أو allow أو allowAllRequests أو upgradeScheme. حتى إذا لم يتم اعتبار القاعدة آمنة (مثلاً redirect)، لا يزال من الممكن إضافتها بشكل ديناميكي، ولكن بحد أقصى أقل يبلغ 5,000 قاعدة، ويتم احتساب ذلك أيضًا ضمن الحد الأقصى البالغ 30,000 قاعدة ديناميكية. لتوضيح ذلك، تشكّل 98% إلى 99% من القواعد في قائمة فلاتر القائمة السهلة قواعد آمنة.

يمكن لإضافات فلترة المحتوى استخدام القواعد الثابتة والديناميكية على التوالي لتجميع قواعد الفلترة المعروفة مع إضافتها وتعديل الإضافات باستخدام قواعد جديدة لفلترة المحتوى من خوادمها عند الحاجة.

تعديل القواعد استنادًا إلى الطلبات التي تم تتبّعها

تشهد المنظومة المتكاملة للإعلانات باستمرار تطورًا مستمرًا، ويجب تحديث فلاتر المحتوى وفقًا لذلك. من خلال الجمع بين قواعد chrome.webRequest وقواعد نموذج بيان طلب البيانات الديناميكية، من الممكن تحليل طلبات الشبكة بحثًا عن أي انتهاكات محتملة للخصوصية وحظرها في المستقبل.

النهج الأساسي هو:

  1. يمكنك تحليل طلبات الويب باستخدام واجهة برمجة تطبيقات chrome.webRequest ومحاولة تحديد الطلبات التي لا تستوفي متطلبات الخصوصية تلقائيًا، على سبيل المثال، استخدام تقنيات تعلُّم الآلة.
  2. أنشئ قاعدة ديناميكية لطلب صافي الطلب لكل طلب تم تحديده في الخطوة الثانية ليتم حظر الطلبات المماثلة في المستقبل.
  3. (اختياري) يمكنك إرسال قاعدة البيانات الوصفية التي تم تحديدها إلى خادمك مرة أخرى بحيث يمكن إضافتها كقاعدة طلب بيانات تعريفية ثابتة مع التحديث التالي للإضافة.

تتمثل فائدة هذا المنهج في أن التحليل يتم بشكل غير متزامن ولن يؤثر سلبًا على أداء الموقع الإلكتروني.

السماح للمستخدمين بتحديد قواعد الفلترة الخاصة بهم

يمكنك السماح للمستخدمين بتحديد قواعدهم الخاصة لفلترة المحتوى من خلال توفير واجهة مستخدم لإعدادات الفلاتر في إضافتك. يمكنك تحويل هذه القواعد التي يحدّدها المستخدم إلى قواعد بيانات طلب الشبكة الإعلانية وإضافتها كقواعد ديناميكية. ستظل هذه القواعد متاحة للمستخدمين أثناء استمرارها في جلسات المتصفِّح وترقيات الإضافات. باستخدام هذا النهج، يمكن للمستخدمين إضافة ما يصل إلى 30,000 قاعدة مخصَّصة.

فلترة العناصر على صفحات الويب

تصفية طلبات الشبكة هي جزء واحد مهم فقط من عملية تصفية المحتوى. هناك جزء كبير آخر يتمثل في إزالة المحتوى غير المرغوب فيه من صفحات الويب مباشرةً. على سبيل المثال، تحدِّد أكثر من 40% من قواعد قائمة الفلاتر السهلة كيفية إخفاء العملاء لعناصر الصفحة.

ويمكن تحقيق ذلك باستخدام النصوص البرمجية للمحتوى. يتم تشغيل النصوص البرمجية للمحتوى في سياق صفحات الويب ويمكنها إجراء تغييرات عليها باستخدام نموذج العناصر في المستند.

لا يُسمح لإضافات Chrome بتنفيذ الرمز المُستضاف عن بُعد. ومع ذلك، لا تتأثّر البيانات الواردة من الخادم عن العناصر المطلوب إخفائها لأنّ هذه البيانات تُعدّ بيانات ضبط، وبالتالي يمكن تعديل قواعد العناصر في وقت التشغيل كلما لزم الأمر.

فلترة طلبات الشبكة في الإضافات المثبَّتة للسياسة

غالبًا ما يكون لحالات الاستخدام للمؤسسات والمؤسسات التعليمية متطلبات صارمة للغاية بخصوص تصفية المحتوى والشبكات، مثل فلترة الطلبات حسب المحتوى الخاص بها. لتفعيل حالات الاستخدام هذه، تتوفّر للإضافات المثبَّتة للسياسات طريقة إضافية لفلترة طلبات الشبكة وحظرها. باستخدام خيار "الحظر" مع الأحداث في واجهة برمجة التطبيقات webRequest، من الممكن تنفيذ فلتر محتوى آلي ينفّذ منطقًا مخصّصًا في كل طلب لتحديد ما إذا كان يجب حظر الطلب أم لا. ويقتصر ذلك على الإضافات المثبَّتة بموجب السياسة، لأنّها تتسم بمستوى أعلى من الثقة.

اعتراض طلبات التنقل

يمكن فلترة طلبات التنقّل باستخدام قواعد البيانات الوصفية Net Request. على سبيل المثال، قد تحتاج إلى تجاوز عناوين URL للتتبع التي تعيد توجيه المستخدم إلى الوجهة المقصودة. يمكن معالجة هذا الأمر من خلال إعادة توجيه طلب التنقّل https://tracker.com?redirect=https%3A%2F%2Fexample.com إلى صفحة إضافة (يجب ضبطها لتكون موردًا يمكن الوصول إليه على الويب)، والتي ستنفّذ بعد ذلك نصًا برمجيًا لاستخراج الوجهة المستهدفة في عملية إعادة التوجيه وإعادة التوجيه إلى الوجهة باستخدام window.location.replace("https://example.com") من خلال التحايل على أداة تتبُّع الروابط.