Lindungi privasi pengguna

Pengguna tidak akan menginstal ekstensi jika privasi mereka disusupi atau meminta izin tambahan yang tampaknya dibutuhkan. Permintaan izin harus dapat dipahami oleh pengguna dan dibatasi pada hal-hal penting yang diperlukan untuk menerapkan ekstensi. Ekstensi yang mengumpulkan atau mengirimkan data pengguna harus mematuhi kebijakan privasi data pengguna .

Lindungi dan hormati pengguna ekstensi dengan menyertakan tindakan pencegahan ini untuk menjaga keamanan identitas mereka. Ingat: semakin sedikit data yang dapat diakses oleh ekstensi, semakin sedikit data yang dapat secara tidak sengaja bocor.

Kurangi izin yang diperlukan

API yang dapat diakses oleh ekstensi ditentukan di kolom izin manifes. Tujuan lebih banyak izin yang diberikan, semakin banyak peluang untuk menyadap informasi. Hanya API perpanjangan yang tergantung harus dicantumkan, dan pertimbangan harus diberikan pada yang tidak terlalu invasif lainnya. Makin sedikit izin yang diminta ekstensi, makin sedikit peringatan izin yang akan ditampilkan ke . Pengguna lebih cenderung menginstal ekstensi dengan peringatan terbatas.

Ekstensi tidak boleh "siap menghadapi masa depan" akses ke data pengguna dengan meminta izin akses yang tidak mereka butuhkan saat ini, tetapi mungkin menerapkannya di masa depan. Sertakan izin baru dengan pembaruan ekstensi dan pertimbangkan untuk menjadikannya opsional.

activeTab

Ekstensi yang menggunakan izin host untuk memasukkan skrip sering kali dapat menggantikan activeTab. Izin activeTab akan memberi ekstensi akses sementara ke tab yang saat ini aktif, hanya saat pengguna memanggil ekstensi. Akses terpotong ketika pengguna keluar dari atau menutup tab yang aktif. Hal ini berfungsi sebagai alternatif untuk banyak penggunaan <all_urls>.

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

Izin activeTab tidak menampilkan pesan peringatan selama penginstalan.

Memilih izin opsional

Dorong pengguna untuk memilih fitur dan izin mana yang mereka perlukan dari ekstensi dengan menyertakan izin opsional. Jika suatu fitur tidak terlalu penting untuk fungsi inti suatu ekstensi, menjadikannya opsional dan memindahkan API atau domain ke kolom optional_permissions.

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

Menyertakan izin opsional memungkinkan ekstensi untuk menjelaskan mengapa izin tertentu diperlukan saat pengguna mengaktifkan fitur yang relevan. Ekstensi dapat menawarkan opsi kepada pengguna untuk mengaktifkan baru.

Screenshot pop-up yang meminta untuk mengaktifkan izin

Mengklik Oke! akan memicu peristiwa berikut di skrip latar belakang.

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();
    }
  });
});

Kemudian, pengguna akan diminta dengan permintaan berikut.

Screenshot permintaan izin opsional.

Izin opsional juga dapat diterapkan dalam update ekstensi. Melakukan hal ini akan membuat versi baru yang tersedia untuk pengguna tanpa menonaktifkan ekstensi, seperti yang dapat terjadi jika memperbarui dengan izin yang diperlukan.

Membatasi dan mengamankan informasi pengguna

Hanya minta data pengguna minimum yang diperlukan ekstensi. Semakin sedikit informasi yang diminta ekstensi dari pengguna berarti lebih sedikit paparan jika ekstensi disusupi.

Semua data pengguna yang diminta harus ditangani dengan hati-hati. Simpan dan ambil data di server yang aman dengan domain yang terdaftar. Selalu gunakan HTTPS untuk terhubung dan jangan menyimpan data pengguna sensitif di klien sisi ekstensi karena penyimpanan ekstensi tidak dienkripsi.