Pengguna tidak akan menginstal ekstensi jika ekstensi tersebut membahayakan privasi mereka atau meminta lebih banyak izin daripada yang diperlukan. Permintaan izin harus dapat dipahami oleh pengguna dan terbatas pada informasi penting yang diperlukan untuk menerapkan ekstensi. Ekstensi yang mengumpulkan atau mengirimkan data pengguna apa pun harus mematuhi kebijakan dalam Melindungi Privasi Pengguna.
Lindungi dan hargai pengguna ekstensi dengan menyertakan tindakan pencegahan ini untuk menjaga keamanan identitas mereka.
Mengurangi izin yang diperlukan
API yang dapat diakses ekstensi ditentukan di kolom permissions pada manifes. Semakin banyak izin yang diberikan, semakin banyak cara yang dimiliki penyerang untuk mencegat informasi. Hanya API yang bergantung pada ekstensi yang harus dicantumkan, dan opsi yang tidak terlalu mengganggu harus dipertimbangkan. 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 "memastikan" akses ke data pengguna di masa mendatang dengan meminta izin yang saat ini tidak diperlukan, tetapi mungkin akan diimplementasikan di masa mendatang. Sertakan izin baru dengan update ekstensi dan pertimbangkan untuk menjadikannya opsional.
activeTab
Ekstensi yang menggunakan izin host untuk menyuntikkan skrip sering kali dapat digantikan dengan activeTab. Izin activeTab akan memberikan akses sementara ke tab yang sedang aktif untuk ekstensi, hanya saat pengguna memanggil ekstensi. Akses akan terputus saat pengguna keluar dari atau menutup tab saat ini. Opsi 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": 3
}
Izin activeTab tidak menampilkan pesan peringatan selama penginstalan.
Memilih izin opsional
Berikan kemampuan kepada pengguna untuk memilih fitur dan izin yang mereka butuhkan 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", ],
"optional_host_permissions": ["https://www.google.com/" ],
...
}
Dengan menyertakan izin opsional, ekstensi dapat menjelaskan alasan izin tertentu diperlukan saat pengguna mengaktifkan fitur yang relevan. Ekstensi dapat menawarkan opsi kepada pengguna untuk mengaktifkan fitur.

Mengklik Oke! akan memicu peristiwa berikut di pekerja layanan.
chrome.action.onClicked.addListener((event) => {
// Permissions must be requested from inside a user gesture, like a button's
// click handler.
chrome.permissions.request(
{
permissions: ["tabs", "scripting"],
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.

Izin opsional juga dapat diterapkan dalam update ekstensi. Dengan demikian, fitur baru akan tersedia bagi pengguna tanpa menonaktifkan ekstensi, seperti yang dapat terjadi jika mengupdate dengan izin baru yang diperlukan.
Membatasi dan mengamankan informasi pengguna
Hanya minta jumlah data minimum yang diperlukan ekstensi. Semakin sedikit informasi yang diminta ekstensi dari pengguna berarti semakin sedikit eksposur jika ekstensi tersebut disusupi.
Semua data pengguna yang diminta harus ditangani dengan hati-hati. Menyimpan dan mengambil data di server yang aman dengan domain terdaftar. Selalu gunakan HTTPS untuk terhubung dan hindari menyimpan data pengguna sensitif di sisi klien ekstensi karena penyimpanan ekstensi tidak dienkripsi.
Menyimpan data dan mode samaran
Ekstensi dapat menyimpan data menggunakan API storage, atau dengan membuat permintaan server yang menghasilkan penyimpanan data. Saat ekstensi perlu menyimpan sesuatu, pertimbangkan terlebih dahulu apakah berasal dari jendela inkognito. Secara default, ekstensi tidak berjalan di jendela samaran.
Mode Samaran menjanjikan bahwa jendela tidak akan meninggalkan jejak. Saat menangani data dari jendela inkognito, ekstensi harus memenuhi janji ini. Jika ekstensi biasanya menyimpan histori penjelajahan, jangan simpan histori dari jendela samaran. Namun, ekstensi dapat menyimpan preferensi setelan dari jendela mana pun, baik samaran maupun tidak.
Untuk mendeteksi apakah jendela berada dalam mode samaran, periksa properti incognito dari objek
tabs.Tab atau windows.Window yang relevan.
function saveTabData(tab) {
if (tab.incognito) {
return;
} else {
chrome.storage.local.set({data: tab.url});
}
}