بيان الأذونات وتحذير المستخدمين

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

تنظيم الأذونات

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

{
  "name": "Permissions Extension",
  ...
  // required permissions
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  // optional permissions
  "optional_permissions": [
    "topSites",
    "http://www.developer.chrome.com/*"
  ],
      ...
  "manifest_version": 2
}

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

يجب تسجيل الأذونات المطلوبة للميزات الاختيارية باعتبارها أذونات اختيارية. هذا النمط يسمح للمستخدمين بتحديد مقدار الوصول الذي يريدون توفيره بالإضافة إلى الميزات المطلوبة.

تحديد الأذونات المطلوبة

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

تحذيرات بشأن أذونات الإضافات عند التثبيت

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

تشغيل الأذونات الاختيارية باستخدام الأحداث

تتجاهل الوظيفة الأساسية لنموذج الأذونات الاختيارية صفحة علامة التبويب الجديدة. هناك ميزة واحدة تعرض هدف المستخدم لليوم. لا تتطلّب هذه الميزة سوى مساحة التخزين. إذن، والذي لا يتضمّن تحذيرًا.

زر الإضافة الذي يتيح ميزات إضافية

تحتوي الإضافة على ميزة إضافية؛ وتعرض أهم المواقع للمستخدم تتطلب هذه الميزة إذن topSites الذي يتضمّن تحذيرًا.

تحذير بشأن الإضافة في TopSites API

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

استبدال إذن activeTab

يمنح الإذن activeTab إمكانية الوصول المؤقت إلى الموقع الإلكتروني الذي يستخدمه المستخدم، كما يسمح بعرض الإضافة لاستخدام إذن "tabs" في علامة التبويب الحالية. يحل محل الحاجة إلى "<all_urls>" في كثير من الحالات ولا يعرض أي تحذير عند التثبيت.

بدون activeTab:

واجهة مستخدم الأذونات بدون activeTab

باستخدام activeTab:

واجهة مستخدم &quot;الأذونات&quot; مع علامة تبويب نشطة

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

عندما يكون إذن activeTab مفعَّلاً لإحدى علامات التبويب، يمكن للإضافة تنفيذ ما يلي:

  • يمكنك الاتصال بالرقم tabs.executeScript أو tabs.insertCSS من خلال علامة التبويب هذه.
  • احصل على عنوان URL والعنوان والرمز المفضّل لعلامة التبويب هذه من خلال واجهة برمجة تطبيقات تعرض عنصر tabs.Tab.
  • اعتراض طلبات الشبكة في علامة التبويب إلى مصدر الإطار الرئيسي لعلامة التبويب باستخدام webRequest واجهة برمجة التطبيقات. تحصل الإضافة مؤقتًا على أذونات المضيف بالنسبة إلى مصدر الإطار الرئيسي لعلامة التبويب.

تعمل إيماءات المستخدم التالية على تفعيل activeTab:

جارٍ السماح بالوصول

إذا كانت إحدى الإضافات تحتاج إلى الوصول إلى file:// عنوان URL أو كانت تعمل في وضع التصفّح المتخفي، سيكون على المستخدمين: تفعيل إمكانية الوصول إلى هذه الميزات داخل صفحة تفاصيل الإضافة على chrome://extensions.

السماح بعناوين URL للملفات ووضع التصفّح المتخفي في صفحة تفاصيل الإضافة

يمكن للإضافة اكتشاف ما إذا كان قد تم تفعيلها في وضع التصفح المتخفي من خلال الاتصال extension.isAllowedIncognitoAccess() أو يمكن عرضها على file:// من عناوين URL ذات extension.isAllowedFileSchemeAccess()

فهم الأذونات

توجد تحذيرات بشأن الأذونات لوصف الإمكانات التي تمنحها واجهة برمجة التطبيقات لمستخدمي الإضافة، ولكن قد لا تكون بعض هذه التحذيرات واضحة في البداية. على سبيل المثال، قد تؤدي إضافة "tabs" ينتج عن هذه الإضافة تحذير يبدو غير ذي صلة: يمكن للإضافة قراءة التصفُّح . يمكن استخدام واجهة برمجة التطبيقات chrome.tabs لفتح علامات التبويب الجديدة فقط، ولكن يمكن استخدامها أيضًا. للاطّلاع على عنوان URL المرتبط بكل علامة تبويب تم فتحها حديثًا باستخدام كائنات tabs.Tab.

عند الإمكان، نفِّذ أذونات اختيارية أو واجهة برمجة تطبيقات أقل فعالية لتجنُّب الأحداث المزعجة. الجديدة.

عرض التحذيرات

لن يتم عرض أي تحذيرات بشأن الأذونات في حال تحميل إضافة كملف تم فك ضغطه. لعرض تحذيرات بشأن أذونات الإضافة، يُرجى الانتقال إلى chrome://extensions والتأكد من تفعيل وضع مطوّر البرامج. وانقر على حزمة الإضافة.

تم &quot;فحص&quot; وضع مطوّر البرامج ثم انقر على &quot;حزمة الإضافة&quot;

حدِّد المسار إلى مجلد الإضافة في حقل الدليل الجذري للإضافة، ثم انقر على زر حزمة الإضافة. تجاهَل حقل المفتاح الخاص في حزمة المرة الأولى.

حدِّد مسار الإضافة ثم انقر على حزمة الإضافة.

سينشئ Chrome ملفَّين، ملف .crx وملف .pem يتضمّن الملف الخاص.

ملفات الإضافات المجمعة

لا تفقد المفتاح الخاص. الاحتفاظ بملف ".pem" في مكان سري وآمن هَتْكُونْ مطلوبة من أجل تحديث الإضافة.

ثبِّت ملف .crx من خلال إفلاته في صفحة إدارة إضافات Chrome.

إفلات الملف للتثبيت

بعد إفلات ملف .crx، سيسألك المتصفّح عمّا إذا كان من الممكن إدراج الإضافة وعرضها. الجديدة.

تحذير بشأن إضافة علامة تبويب جديدة

الأذونات التي تتضمّن تحذيرات

ملاحظة: يتم تعديل جداول الأذونات وفقًا لأفضل الإمكانيات المتاحة، وقد تحتوي على تناقضات طفيفة. مع التحذيرات الحالية بالإضافة إلى ذلك، قد لا تعرض بعض الأذونات تحذيرات عند إقرانها بـ أذونات أخرى. على سبيل المثال، لن يظهر التحذير "tabs" إذا كانت الإضافة أيضًا. يطلب "<all_urls>". للتحقّق من أحدث التحذيرات الظاهرة لأذونات الإضافات، اتّبِع الخطوات التالية: الخطوات في عرض التحذيرات.

الإذن الوصف تحذير
  • "http://*/*"
  • "https://*/*"
  • "*://*/*"
  • "<all_urls>"
يمنح الإضافة إذن الوصول إلى جميع المضيفين. قد يكون من الممكن تجنُّب الإعلان عن أي أذونات مضيف باستخدام الإذن activeTab. قراءة جميع بياناتك وتغييرها على المواقع الإلكترونية التي تزورها
"https://HostName.com/" يمنح الإضافة إذن الوصول إلى ""https://HostName.com/"". وقد يكون من الممكن تجنُّب الإعلان عن أذونات المضيف باستخدام إذن activeTab. قراءة بياناتك وتغييرها في HostName.com
"bookmarks" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة التطبيقات chrome.bookmarks. قراءة الإشارات المرجعية وتغييرها
"clipboardRead" مطلوبة إذا كانت الإضافة تستخدم السمة document.execCommand('paste'). قراءة البيانات التي يتم نسخها ولصقها
"clipboardWrite" تشير إلى أن الإضافة تستخدم السمة document.execCommand('copy') أو document.execCommand('cut') تعديل البيانات التي يتم نسخها ولصقها
"contentSettings" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة التطبيقات chrome.contentSettings. تغيير الإعدادات التي تتحكم في المواقع الإلكترونية الوصول إلى ميزات مثل ملفات تعريف الارتباط وJavaScript والمكونات الإضافية رصد الموقع الجغرافي أو الميكروفون أو الكاميرا أو غير ذلك
"debugger" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة التطبيقات chrome.debugger.
  • الوصول إلى الواجهة الخلفية لبرنامج تصحيح أخطاء الصفحة
  • قراءة جميع بياناتك وتغييرها على المواقع الإلكترونية التي تزورها
"declarativeNetRequest" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.declarativeNetRequest. حظر محتوى الصفحة
"desktopCapture" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة التطبيقات chrome.desktopCapture. التقاط محتوى شاشتك
"downloads" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة التطبيقات chrome.downloads. إدارة عمليات التنزيل
"geolocation" السماح للإضافة باستخدام geolocation API في HTML5 بدون طلب إذن من المستخدم. رصد موقعك الجغرافي
"history" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.history. قراءة سجلّ التصفُّح وتغييره
"management" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.management. إدارة التطبيقات والإضافات والمظاهر
"nativeMessaging" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات المراسلة مع التطبيقات الأصلية. التواصل مع التطبيقات التعاونية الأصلية
"notifications" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة التطبيقات chrome.notifications. عرض الإشعارات
"pageCapture" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.pageCapture. قراءة جميع بياناتك وتغييرها على المواقع الإلكترونية التي تزورها
"privacy" لمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.privacy تغيير الإعدادات المتعلقة بالخصوصية
"proxy" لمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.proxy. قراءة جميع بياناتك وتغييرها على المواقع الإلكترونية التي تزورها
"system.storage" لمنح الإضافة إذن الوصول إلى واجهة برمجة تطبيقات chrome.system.storage. تحديد أجهزة التخزين وإخراجها
"tabCapture" يمنح الإضافات إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.tabCapture. قراءة جميع بياناتك وتغييرها على المواقع الإلكترونية التي تزورها
"tabs" يمنح الإضافة إمكانية الوصول إلى الحقول المميزة لكائنات Tab التي تستخدمها العديد من واجهات برمجة التطبيقات. بما في ذلك chrome.tabs وchrome.windows. ضِمن العديد من الحالات التي لن تحتاج فيها الإضافة إلى تقديم بيان عن إذن ""tabs"" للاستفادة من لواجهات برمجة التطبيقات هذه. قراءة سجلّ التصفُّح
"topSites" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.topSites. قراءة قائمة بالمواقع الإلكترونية التي يكثر التردد عليها
"ttsEngine" يمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.ttsEngine. قراءة كل النص المنطوق باستخدام الكلام المركَّب
"webNavigation" لمنح الإضافة إمكانية الوصول إلى واجهة برمجة تطبيقات chrome.webNavigation. قراءة سجلّ التصفُّح

تحديث الأذونات

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

إذا عدَّل المستخدم إضافة تتضمّن الآن إذن علامات التبويب يدويًا، سيحصل على تحذير في صفحة الإدارة.

إضافة علامات التبويب الإذن

إذا تم تحديث الإضافة تلقائيًا، فسيتم إيقافها إلى أن يوافق المستخدم على الأذونات.

تم إيقاف الإضافة.

الموافقة على الأذونات

لتجنُّب حدوث ذلك، يمكنك جعل الميزة الجديدة اختيارية وإضافة تعديلات جديدة على الأذونات إلى optional_permissions في البيان.