الحفاظ على خصوصية المستخدم

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

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

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

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

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

activeTab

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

{
  "name": "Very Secure Extension",
  "version": "1.0",
  "description": "Example of a Secure Extension",
  "permissions": ["activeTab"],
  "manifest_version": 2
}

لا يعرض إذن ActiveTab أي رسائل تحذير أثناء التثبيت.

تفعيل الأذونات الاختيارية

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

{
  "name": "Very Secure Extension",
  ...
  "optional_permissions": [ "tabs", "https://www.google.com/" ],
  ...
}

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

لقطة شاشة لنافذة منبثقة تطلب منك تفعيل الأذونات

سيؤدي النقر على حسنًا! إلى تشغيل الحدث التالي في النص البرمجي للخلفية.

document.querySelector('#button').addEventListener('click', function(event) {
  // Permissions must be requested from inside a user gesture, like a button's
  // click handler.
  chrome.permissions.request({
    permissions: ['tabs'],
    origins: ['https://www.google.com/']
  }, function(granted) {
    // The callback argument will be true if the user granted the permissions.
    if (granted) {
      // doSomething();
    } else {
      // doSomethingElse();
    }
  });
});

بعد ذلك، سيُطلب من المستخدم تقديم الطلب التالي.

لقطة شاشة لطلب أذونات اختيارية

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

تقييد معلومات المستخدم وتأمينها

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

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