Gli utenti non installeranno un'estensione se compromette la loro privacy o chiede più autorizzazioni di quelle che sembrano necessarie. Le richieste di autorizzazione devono avere un senso per gli utenti ed essere limitate alle informazioni essenziali necessarie per implementare l'estensione. Le estensioni che raccolgono o trasmettono dati utente devono rispettare le norme riportate nella sezione Protezione della privacy degli utenti.
Proteggi e rispetta gli utenti delle estensioni includendo queste precauzioni per mantenere al sicuro la loro identità.
Ridurre le autorizzazioni richieste
Le API a cui un'estensione può accedere sono specificate nel campo permissions del manifest. Più autorizzazioni vengono concesse, più vie ha un malintenzionato per intercettare le informazioni. Devono essere elencate solo le API da cui dipende un'estensione e devono essere prese in considerazione opzioni meno invasive. Meno autorizzazioni richiede un'estensione, meno avvisi relativi alle autorizzazioni verranno mostrati a un utente. Gli utenti sono più propensi a installare un'estensione con avvisi limitati.
Le estensioni non devono "prepararsi al futuro" per l'accesso ai dati degli utenti richiedendo autorizzazioni di cui non hanno attualmente bisogno, ma che potrebbero implementare in futuro. Includi nuove autorizzazioni con gli aggiornamenti delle estensioni e valuta la possibilità di renderle facoltative.
activeTab
Le estensioni che utilizzano le autorizzazioni host per inserire script possono spesso sostituire activeTab. L'autorizzazione activeTab concederà all'estensione l'accesso temporaneo alla scheda attualmente attiva solo quando l'utente richiama l'estensione. L'accesso viene interrotto quando l'utente esce dalla scheda corrente o la chiude. Funge da alternativa per molti utilizzi di <all_urls>.
{
"name": "Very Secure Extension",
"version": "1.0",
"description": "Example of a Secure Extension",
"permissions": ["activeTab"],
"manifest_version": 3
}
L'autorizzazione activeTab non mostra messaggi di avviso durante l'installazione.
Scegliere le autorizzazioni facoltative
Consenti agli utenti di scegliere le funzionalità e le autorizzazioni di cui hanno bisogno da un'estensione includendo le autorizzazioni facoltative. Se una funzionalità non è essenziale per il funzionamento di base di un'estensione, rendila facoltativa e sposta l'API o il dominio nel campo optional_permissions.
{
"name": "Very Secure Extension",
...
"optional_permissions": [ "tabs", ],
"optional_host_permissions": ["https://www.google.com/" ],
...
}
L'inclusione di autorizzazioni facoltative consente a un'estensione di spiegare perché ha bisogno di una determinata autorizzazione quando l'utente attiva la funzionalità pertinente. L'estensione può offrire all'utente un'opzione per attivare le funzionalità.

Se fai clic su Ok, nel service worker viene attivato il seguente evento.
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();
}
}
);
});
All'utente verrà quindi mostrata la seguente richiesta.

Le autorizzazioni facoltative possono essere implementate anche in un aggiornamento dell'estensione. In questo modo, la nuova funzionalità sarà disponibile per gli utenti senza disattivare l'estensione, come potrebbe accadere se l'aggiornamento viene eseguito con nuove autorizzazioni richieste.
Limitare e proteggere le informazioni utente
Richiedi solo la quantità minima di dati necessaria a un'estensione. Se un'estensione richiede meno informazioni a un utente, l'esposizione in caso di compromissione è minore.
Tutti i dati utente richiesti devono essere trattati con cura. Archivia e recupera dati in un server sicuro con un dominio registrato. Utilizza sempre HTTPS per la connessione ed evita di conservare dati utente sensibili nel lato client di un'estensione, in quanto lo spazio di archiviazione dell'estensione non è criptato.
Salvataggio dei dati e modalità di navigazione in incognito
Le estensioni possono salvare i dati utilizzando l'API storage o effettuando richieste al server che comportano il salvataggio dei dati. Quando l'estensione deve salvare qualcosa, considera innanzitutto se proviene da una finestra di navigazione in incognito. Per impostazione predefinita, le estensioni non vengono eseguite nelle finestre di navigazione in incognito.
La modalità di navigazione in incognito promette che la finestra non lascerà tracce. Quando gestiscono dati provenienti da finestre di navigazione in incognito, le estensioni devono rispettare questa promessa. Se un'estensione normalmente salva la cronologia di navigazione, non salvare la cronologia delle finestre di navigazione in incognito. Tuttavia, le estensioni possono memorizzare le preferenze delle impostazioni da qualsiasi finestra, in incognito o meno.
Per rilevare se una finestra è in modalità di navigazione in incognito, controlla la proprietà incognito dell'oggetto tabs.Tab o windows.Window pertinente.
function saveTabData(tab) {
if (tab.incognito) {
return;
} else {
chrome.storage.local.set({data: tab.url});
}
}