Dichiara le autorizzazioni e avvisa gli utenti

La capacità di un'estensione di accedere a siti web e la maggior parte delle API di Chrome dipende dal suo autorizzazioni. Le autorizzazioni devono essere limitate solo a ciò che è necessario per la sua funzionalità. La limitazione delle autorizzazioni stabilisce le capacità di un'estensione e riduce le possibili incursioni nei dati se l'estensione viene compromessa da un utente malintenzionato. Proteggi le estensioni e i relativi utenti implementando autorizzazioni esplicite, minime e facoltative.

Organizza le autorizzazioni

Le autorizzazioni sono stringhe note che fanno riferimento a un'API di Chrome o pattern di corrispondenza che concedono l'accesso a per uno o più host. Sono elencate nel manifest e specificate come autorizzazioni obbligatorie oppure autorizzazioni facoltative.

{
  "name": "Permissions Extension",
  ...
  // required permissions
  "permissions": [
    "activeTab",
    "contextMenus",
    "storage"
  ],
  // optional permissions
  "optional_permissions": [
    "topSites",
    "http://www.developer.chrome.com/*"
  ],
      ...
  "manifest_version": 2
}

Limita le autorizzazioni necessarie solo a ciò che è necessario per la funzionalità di base dell'estensione. Un l'estensione non deve richiedere più autorizzazioni di quelle di cui ha bisogno attualmente. non creare una prova futura e richiedere le autorizzazioni necessarie con gli aggiornamenti.

Le autorizzazioni necessarie per le funzionalità facoltative devono essere registrate come autorizzazioni facoltative. Questo consente agli utenti di decidere il livello di accesso che intendono fornire un'estensione e quali funzionalità desiderato.

Identifica le autorizzazioni richieste

Un'estensione semplice potrebbe dover richiedere più autorizzazioni e molte autorizzazioni vengono visualizzate avvisi sull'installazione. Gli utenti sono più propensi a fidarsi di un'estensione con avvisi limitati o quando vengono spiegate le autorizzazioni.

Avvisi relativi alle autorizzazioni delle estensioni al momento dell'installazione

Identificare la funzionalità di base di un'estensione e le autorizzazioni necessarie. Prendi in considerazione rendendo le funzionalità facoltative se richiedono autorizzazioni con avvisi.

Attiva autorizzazioni facoltative con eventi

La funzionalità di base dell'estensione di esempio relativa alle autorizzazioni facoltative sostituisce la pagina Nuova scheda. Una funzionalità è visualizzare l'obiettivo della giornata dell'utente. Questa funzionalità richiede solo lo spazio di archiviazione che non include un avviso.

Pulsante estensione che attiva funzionalità aggiuntive

L'estensione ha una funzionalità aggiuntiva: che mostrano i siti principali dell'utente. Questa funzionalità richiede topSites, che include un avviso.

Avviso estensione per l'API topSites

Sviluppare funzionalità che si basano sulle autorizzazioni con avvisi facoltativi e introdurre questi avvisi in modo organico offre agli utenti un'introduzione all'estensione senza rischi. Inoltre, questo consente agli utenti di personalizzare ulteriormente la propria esperienza con un'estensione e offre l'opportunità di spiega gli avvisi.

Sostituisci l'autorizzazione ActiveTab

L'autorizzazione activeTab concede l'accesso temporaneo al sito in cui si trova l'utente e consente alla per usare l'autorizzazione "tabs" nella scheda corrente. Sostituisce la necessità "<all_urls>" in molti casi e non mostra alcun avviso al momento dell'installazione.

Senza scheda attiva:

UI delle autorizzazioni senza una scheda attiva

Con la scheda attiva:

UI delle autorizzazioni con scheda attiva

L'autorizzazione activeTab concede a un'estensione l'accesso temporaneo alla scheda attualmente attiva quando l'utente chiama l'estensione. Se l’estensione viene compromessa, l’aggressore deve attendere per consentire all'utente di richiamare l'estensione prima di ottenere l'accesso, e questo accesso durerebbe solo fino al la scheda viene visualizzata o chiusa.

Mentre l'autorizzazione activeTab è attiva per una scheda, un'estensione può:

  • Chiama tabs.executeScript o tabs.insertCSS in questa scheda.
  • Recupera l'URL, il titolo e la favicon di quella scheda tramite un'API che restituisce un oggetto tabs.Tab.
  • Intercetta le richieste di rete nella scheda con l'origine del frame principale della scheda utilizzando webRequest tramite Google Cloud CLI o tramite l'API Compute Engine. L'estensione riceve temporaneamente le autorizzazioni host per l'origine del frame principale della scheda.

I seguenti gesti dell'utente consentono di attivare activeTab:

Autorizzazione dell'accesso

Se un'estensione deve accedere agli URL di file:// o operare in modalità di navigazione in incognito, gli utenti dovranno: attiva l'accesso a queste funzionalità nella pagina dei dettagli dell'estensione all'indirizzo chrome://extensions.

Consenti gli URL dei file e la modalità di navigazione in incognito nella pagina dei dettagli dell&#39;estensione

Un'estensione può rilevare se è stata attivata in modalità di navigazione in incognito chiamando extension.isAllowedIncognitoAccess() o che possono essere pubblicati su file:// URL con extension.isAllowedFileSchemeAccess()

Informazioni sulle autorizzazioni

Esistono avvisi di autorizzazione per descrivere le funzionalità concesse da un'API agli utenti dell'estensione, ma alcuni di questi avvisi all'inizio potrebbero non essere evidenti. Ad esempio, l'aggiunta di "tabs" comporta un avviso apparentemente non correlato: l'estensione può Leggere la tua navigazione attività. L'API chrome.tabs può essere utilizzata solo per aprire nuove schede, ma può essere utilizzata anche per visualizzare l'URL associato a ogni scheda appena aperta utilizzando i relativi oggetti tabs.Tab.

Se possibile, implementa autorizzazioni facoltative o un'API meno potente per evitare l'allarme avvisi.

Visualizzazione degli avvisi

Se un'estensione viene caricata come file decompresso, non verrà visualizzato alcun avviso relativo alle autorizzazioni. Per visualizzare un avvisi di autorizzazione dell'estensione, vai a chrome://extensions e assicurati che la modalità sviluppatore sia attiva e fai clic su COMPLETA ESTENSIONE.

È stata selezionata la modalità sviluppatore, quindi l&#39;estensione Click Pack è selezionata

Specifica il percorso della cartella dell'estensione nel campo Directory principale dell'estensione , quindi fai clic sul pulsante Pulsante Crea pacchetto estensione. Ignora il campo Chiave privata per un pacchetto per la prima volta.

Specifica il percorso dell&#39;estensione, quindi l&#39;estensione Click Pack

Chrome creerà due file, un file .crx e un file .pem contenente il nome dell'estensione chiave privata.

File di estensioni in pacchetto

Non perdere la chiave privata. Conserva il file .pem in un luogo segreto e sicuro. sarà necessario per aggiornare l'estensione.

Installa il file .crx trascinandolo nella pagina Gestione dell'estensione di Chrome.

Trascina file da installare

Dopo aver eliminato il file .crx, il browser chiederà se è possibile aggiungere l'estensione e visualizzarla avvisi.

Avviso per l&#39;estensione Nuova scheda

Autorizzazioni con avvisi

Nota:le tabelle delle autorizzazioni vengono aggiornate secondo il criterio del "best effort" e potrebbero contenere lievi discrepanze con gli avvisi correnti. Inoltre, alcune autorizzazioni potrebbero non mostrare avvisi se abbinate a e altre autorizzazioni. Ad esempio, l'avviso "tabs" non viene visualizzato se anche l'estensione richiede "<all_urls>". Per verificare gli avvisi più recenti mostrati per le autorizzazioni delle estensioni, segui i passaggi in Visualizzazione degli avvisi.

Autorizzazione Descrizione Avviso
  • "http://*/*"
  • "https://*/*"
  • "*://*/*"
  • "<all_urls>"
Concede all'estensione l'accesso a tutti gli host. Potrebbe essere possibile evitare di dichiarare le autorizzazioni host utilizzando l'autorizzazione activeTab. Leggere e modificare tutti i dati sui siti web visitati
"https://HostName.com/" Concede all'estensione l'accesso a "https://HostName.com/". È possibile evitare di dichiarare qualsiasi autorizzazioni host usando l'autorizzazione activeTab. Leggere e modificare i dati su HostName.com
"bookmarks" Concede alla tua estensione l'accesso all'API chrome.bookmarks. Leggere e modificare i preferiti
"clipboardRead" Obbligatorio se l'estensione utilizza document.execCommand('paste'). Leggere i dati copiati e incollati
"clipboardWrite" Indica che l'estensione utilizza document.execCommand('copy') o document.execCommand('cut'). Modificare i dati copiati e incollati
"contentSettings" Concede alla tua estensione l'accesso all'API chrome.contentSettings. Modifica delle impostazioni che controllano i siti web accesso a funzioni quali cookie, JavaScript, plug-in, geolocalizzazione, microfono, fotocamera ecc.
"debugger" Concede alla tua estensione l'accesso all'API chrome.debugger.
  • Accedere al backend del debugger delle pagine
  • Leggere e modificare tutti i dati sui siti web visitati
"declarativeNetRequest" Concede alla tua estensione l'accesso all'API chrome.declarativeNetRequest. Bloccare i contenuti delle pagine
"desktopCapture" Concede alla tua estensione l'accesso all'API chrome.desktopCapture. Acquisire i contenuti dello schermo
"downloads" Concede alla tua estensione l'accesso all'API chrome.downloads. Gestire i download
"geolocation" Consente all'estensione di utilizzare l'API di geolocalizzazione HTML5 senza richiedere l'autorizzazione all'utente. Rileva la tua posizione fisica
"history" Concede alla tua estensione l'accesso all'API chrome.history. Leggere e modificare la cronologia di navigazione
"management" Concede all'estensione l'accesso all'API chrome.management. Gestire app, estensioni e temi
"nativeMessaging" Concede all'estensione l'accesso all'API Native Messaging. Comunicare con applicazioni native che interagiscono tra loro
"notifications" Concede alla tua estensione l'accesso all'API chrome.notifications. Mostrare notifiche
"pageCapture" Concede all'estensione l'accesso all'API chrome.pageCapture. Leggere e modificare tutti i dati sui siti web visitati
"privacy" Concede all'estensione l'accesso all'API chrome.privacy. Modificare le impostazioni relative alla privacy
"proxy" Concede all'estensione l'accesso all'API chrome.proxy. Leggere e modificare tutti i dati sui siti web visitati
"system.storage" Concede all'estensione l'accesso all'API chrome.system.storage. Identificare ed espuldere i dispositivi di archiviazione
"tabCapture" Concede alle estensioni l'accesso all'API chrome.tabCapture. Leggere e modificare tutti i dati sui siti web visitati
"tabs" Concede all'estensione l'accesso ai campi con privilegi degli oggetti Tab utilizzati da diverse API inclusi chrome.tabs e chrome.windows. Nella in molte circostanze per cui l'estensione non dovrà dichiarare l'autorizzazione "tabs" per l'utilizzo queste API. Leggere la cronologia di navigazione
"topSites" Concede all'estensione l'accesso all'API chrome.topSites. Leggere un elenco dei siti web che visiti più spesso
"ttsEngine" Concede all'estensione l'accesso all'API chrome.ttsEngine. Leggere tutto il testo pronunciato utilizzando la sintesi vocale
"webNavigation" Concede all'estensione l'accesso all'API chrome.webNavigation. Leggere la cronologia di navigazione

Aggiorna autorizzazioni

L'aggiornamento di un'estensione con autorizzazioni aggiuntive potrebbe disattivarla temporaneamente. L'utente dovrà riattivarla dopo aver accettato nuovi avvisi.

Se l'utente aggiorna manualmente un'estensione che ora include l'autorizzazione schede, riceverà un avviso nella pagina di gestione.

Aggiunta di autorizzazione di schede

Se l'estensione viene aggiornata automaticamente, verrà disattivata fino a quando l'utente non accetta la nuova autorizzazioni aggiuntive.

L&#39;estensione è stata disattivata

Accetta le autorizzazioni

Per evitare questo problema, rendi facoltativa la nuova funzionalità e aggiungi nuovi aggiornamenti delle autorizzazioni alla optional_permissions nel manifest.