از حریم خصوصی کاربر محافظت کنید

اگر کاربران یک برنامه افزودنی را به خطر بیاندازند یا مجوزهای بیشتری را که به نظر می رسد نیاز دارند بخواهند نصب نمی کنند. درخواست های مجوز باید برای کاربران منطقی باشد و محدود به اطلاعات حیاتی لازم برای اجرای برنامه افزودنی باشد. برنامه‌های افزودنی که داده‌های کاربر را جمع‌آوری یا انتقال می‌دهند باید با سیاست‌های حفظ حریم خصوصی داده‌های کاربر مطابقت داشته باشند.

با در نظر گرفتن این اقدامات احتیاطی برای ایمن نگه داشتن هویت از کاربران برنامه افزودنی محافظت و به آنها احترام بگذارید. به یاد داشته باشید: هرچه یک برنامه افزودنی به داده کمتری دسترسی داشته باشد، داده کمتری ممکن است به طور تصادفی نشت کند.

مجوزهای مورد نیاز را کاهش دهید

APIهایی که یک برنامه افزودنی می تواند به آن دسترسی داشته باشد در قسمت مجوزهای مانیفست مشخص شده است. هرچه مجوزهای بیشتری داده شود، مهاجم راه های بیشتری برای رهگیری اطلاعات دارد. فقط APIهایی که یک برنامه افزودنی به آنها وابسته است باید فهرست شوند و باید به گزینه های کمتر تهاجمی توجه شود. هرچه یک برنامه افزودنی مجوز کمتری درخواست کند، هشدارهای مجوز کمتری به کاربر نشان داده می شود. احتمال نصب افزونه با اخطارهای محدود توسط کاربران بیشتر است.

برنامه‌های افزودنی نباید با درخواست مجوزهایی که در حال حاضر نیازی به آن ندارند، اما ممکن است در آینده اجرا شوند، به داده‌های کاربر «آینده اثبات» دسترسی داشته باشند. مجوزهای جدید را با به‌روزرسانی‌های برنامه افزودنی اضافه کنید و آنها را اختیاری کنید.

فعال تب

برنامه‌های افزودنی که از مجوزهای میزبان برای تزریق اسکریپت‌ها استفاده می‌کنند، اغلب می‌توانند به جای آن، activeTab جایگزین کنند. مجوز activeTab تنها زمانی که کاربر برنامه افزودنی را فراخوانی می کند ، به یک برنامه افزودنی دسترسی موقت به برگه فعال فعلی اعطا می کند. هنگامی که کاربر از برگه فعلی دور می شود یا آن را می بندد، دسترسی قطع می شود. به عنوان جایگزینی برای بسیاری از کاربردهای <all_urls> عمل می کند.

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

مجوز activeTab هیچ پیام هشداری را در حین نصب نمایش نمی دهد.

مجوزهای اختیاری را انتخاب کنید

با گنجاندن مجوزهای اختیاری، به کاربران این امکان را بدهید که انتخاب کنند به کدام ویژگی ها و مجوزها نیاز دارند. اگر یک ویژگی برای عملکرد اصلی یک برنامه افزودنی ضروری نیست، آن را اختیاری کنید و API یا دامنه را به قسمت optional_permissions منتقل کنید.

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

گنجاندن مجوزهای اختیاری به افزونه اجازه می‌دهد توضیح دهد که چرا وقتی کاربر ویژگی مربوطه را فعال می‌کند، به مجوز خاصی نیاز دارد. افزونه می تواند گزینه ای برای فعال کردن ویژگی ها به کاربر ارائه دهد.

تصویری از یک پنجره بازشو که درخواست فعال کردن مجوزها را دارد

کلیک کردن Okay! رویداد زیر را در اسکریپت پس‌زمینه فعال می‌کند.

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 برای اتصال استفاده کنید و از نگهداری اطلاعات حساس کاربر در سمت سرویس گیرنده برنامه افزودنی خودداری کنید زیرا فضای ذخیره سازی افزونه رمزگذاری نشده است.