Manifest - Risorse accessibili dal web

Un array di stringhe che specifica i percorsi delle risorse in pacchetto che dovrebbero essere utilizzabili nel contesto di una pagina web. Questi percorsi sono relativi alla radice del pacchetto e possono contenere caratteri jolly. Ad esempio, un'estensione che inserisce uno script di contenuti con l'intento di creare un'interfaccia personalizzata per example.com consentirebbe tutte le risorse richieste dall'interfaccia (immagini, icone, fogli di stile, script e così via) come segue:

{
  ...
  "web_accessible_resources": [
    "images/*.png",
    "style/double-rainbow.css",
    "script/double-rainbow.js",
    "script/main.js",
    "templates/*"
  ],
  ...
}

Queste risorse saranno quindi disponibili in una pagina web tramite l'URL chrome-extension://[PACKAGE ID]/[PATH], che può essere generato con il metodo extension.getURL. Le risorse incluse nella lista consentita vengono fornite con intestazioni CORS appropriate, quindi sono disponibili tramite meccanismi come XHR.

La navigazione da un'origine web a una risorsa estensione verrà bloccata a meno che la risorsa non sia elencata come accessibile dal web. Prendi nota di questi casi limite:

  • Quando un'estensione utilizza le API webRequest o declarativeWebRequest per reindirizzare una richiesta di risorsa pubblica a una risorsa che non è accessibile dal web, tale richiesta viene bloccata.
  • Quanto riportato sopra vale anche se la risorsa non accessibile dal Web è di proprietà dell'estensione di reindirizzamento.

Gli script di contenuti non devono essere inseriti nella lista consentita.

Prima della versione 2 del manifest, tutte le risorse all'interno di un'estensione erano accessibili da qualsiasi pagina sul Web. Ciò ha consentito a un sito web dannoso di improntare le estensioni installate da un utente o di sfruttare le vulnerabilità (ad esempio bug XSS) all'interno delle estensioni installate. Limitare la disponibilità solo alle risorse espressamente destinate a essere accessibili dal web serve a ridurre al minimo la superficie di attacco disponibile e a proteggere la privacy degli utenti.

Disponibilità predefinita

Le risorse all'interno dei pacchetti che utilizzano manifest_version 2 o versioni successive sono bloccate per impostazione predefinita e devono essere inserite nella lista consentita per l'utilizzo tramite questa proprietà.

Le risorse all'interno dei pacchetti che utilizzano manifest_version 1 sono disponibili per impostazione predefinita, ma if la imposti, questa verrà considerata come un elenco completo di tutte le risorse incluse nella lista consentita. Le risorse non elencate verranno bloccate.