Lindungi privasi pengguna

Pengguna tidak akan menginstal ekstensi jika mengganggu privasi mereka atau meminta izin lebih lanjut yang tampaknya diperlukan. Permintaan izin harus dapat dipahami oleh pengguna dan dibatasi pada informasi 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 ekstensi, semakin sedikit data yang dapat secara tidak sengaja bocor.

Kurangi izin yang diperlukan

API yang dapat diakses ekstensi ditentukan di kolom izin manifes. Semakin banyak izin yang diberikan, semakin banyak kesempatan yang dimiliki penyerang untuk menyadap informasi. Hanya API yang menjadi dependensi ekstensi yang harus dicantumkan, dan pertimbangan harus diberikan pada opsi yang tidak terlalu invasif. Makin sedikit izin yang diminta ekstensi, makin sedikit peringatan izin yang akan ditampilkan kepada pengguna. Pengguna lebih cenderung menginstal ekstensi dengan peringatan terbatas.

Ekstensi tidak boleh memiliki akses "yang siap menghadapi masa depan" ke data pengguna dengan meminta izin yang saat ini tidak diperlukan, tetapi mungkin akan diterapkan di masa mendatang. Sertakan izin baru dengan update ekstensi dan pertimbangkan untuk membuatnya opsional.

activeTab

Ekstensi yang menggunakan izin host untuk memasukkan skrip sering kali dapat menggantikan activeTab. Izin activeTab akan memberikan akses sementara kepada ekstensi ke tab yang sedang aktif, hanya ketika pengguna memanggil ekstensi. Akses terputus saat pengguna keluar dari atau menutup tab saat ini. Hal ini berfungsi sebagai alternatif bagi 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.

Pilih izin opsional

Berdayakan pengguna untuk memilih fitur dan izin yang mereka perlukan dari ekstensi dengan menyertakan izin opsional. Jika fitur tidak penting untuk fungsi inti ekstensi, jadikan fitur tersebut opsional dan pindahkan 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 alasan diperlukannya izin tertentu saat pengguna mengaktifkan fitur yang relevan. Ekstensi dapat menawarkan opsi kepada pengguna untuk mengaktifkan fitur.

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

Pengguna kemudian akan melihat permintaan berikut.

Screenshot permintaan izin opsional.

Izin opsional juga dapat diterapkan dalam update ekstensi. Tindakan ini akan membuat fitur baru tersebut tersedia bagi pengguna tanpa menonaktifkan ekstensi, seperti yang mungkin terjadi jika mengupdate dengan izin baru yang diperlukan.

Membatasi dan mengamankan informasi pengguna

Hanya minta data pengguna minimum yang diperlukan ekstensi. Makin sedikit informasi yang diminta ekstensi dari pengguna, makin sedikit eksposur jika ekstensi disusupi.

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