Proteggi la privacy degli utenti

Gli utenti non installeranno un'estensione se questa compromette la loro privacy o richiede le autorizzazioni necessarie. Le richieste di autorizzazione devono avere senso per gli utenti ed essere limitate alle informazioni critiche 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à.

Riduci le autorizzazioni richieste

Le API a cui un'estensione può accedere sono specificate nel campo permissions del manifest. Maggiore è il numero di autorizzazioni concesse, maggiori sono le possibilità di intercettazione delle informazioni da parte di un aggressore. Devono essere elencate solo le API da cui dipende un'estensione e dovrebbero essere prese in considerazione le opzioni meno invasive. Minore è il numero di autorizzazioni richieste da un'estensione, minore è il numero di avvisi relativi alle autorizzazioni che verranno mostrati a un utente. Gli utenti sono più propensi a installare un'estensione con avvisi limitati.

Le estensioni non devono essere a prova di futuro l'accesso ai dati utente richiedendo autorizzazioni che non hanno attualmente bisogno, ma che potrebbero implementare in futuro. Includi le nuove autorizzazioni con gli aggiornamenti delle estensioni e considera la possibilità di renderle facoltative.

activeTab

Spesso le estensioni che utilizzano autorizzazioni host per inserire script possono sostituire activeTab. L'autorizzazione activeTab concederà a un'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 chiude la scheda. È un'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.

Scegli autorizzazioni facoltative

Consenti agli utenti di scegliere da un'estensione le funzionalità e le autorizzazioni di cui hanno bisogno, includendo autorizzazioni facoltative. Se una funzionalità non è essenziale per la funzionalità 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é necessita di una determinata autorizzazione quando l'utente attiva la funzionalità pertinente. L'estensione può offrire all'utente la possibilità di attivare le funzionalità di machine learning.

Uno screenshot di un popup che chiede di attivare le autorizzazioni

Se fai clic su Ok!, nel Service worker verrà 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 presentata la richiesta seguente.

Uno screenshot della richiesta di autorizzazioni facoltative.

Le autorizzazioni facoltative possono essere implementate anche in un aggiornamento dell'estensione. In questo modo si funzionalità disponibile per gli utenti senza disattivare l'estensione, come può accadere se l'aggiornamento viene eseguito con nuove le autorizzazioni necessarie.

Limitare e proteggere le informazioni utente

Richiedi solo la quantità minima di dati necessaria per un'estensione. Minore è il numero di informazioni che un'estensione chiede a un utente significa minore esposizione se l'estensione viene compromessa.

Tutti i dati utente richiesti devono essere trattati con attenzione. Archivia e recupera i dati in un server sicuro con un dominio registrato. Utilizza sempre HTTPS per connetterti ed evitare di conservare dati utente sensibili nel client di un'estensione, perché lo spazio di archiviazione delle estensioni non è criptato.

Salvataggio dei dati e modalità di navigazione in incognito

Le estensioni possono salvare dati utilizzando l'API storage o effettuando richieste del server che comportano il salvataggio dei dati. Quando l'estensione deve salvare qualcosa, valuta innanzitutto se proviene da un 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 si gestiscono i dati provenienti da finestre di navigazione in incognito, le estensioni devono rispettare questa promessa. Se normalmente un'estensione salva la navigazione , non salvare la cronologia delle finestre di navigazione in incognito. Tuttavia, le estensioni possono memorizzare preferenze da qualsiasi finestra, in incognito o meno.

Per rilevare se una finestra è in modalità di navigazione in incognito, controlla la proprietà incognito della notifica pertinente tabs.Tab o windows.Window.

function saveTabData(tab) {
  if (tab.incognito) {
    return;
  } else {
    chrome.storage.local.set({data: tab.url});
  }
}