حماية خصوصية المستخدم

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

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

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

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

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

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 للاتصال وتجنُّب الاحتفاظ ببيانات المستخدمين الحسّاسة في جانب العميل من الإضافة لأنّ مساحة تخزين الإضافة غير مشفّرة.