Manifest - Risorse accessibili dal web

Un array di stringhe che specifica i percorsi delle risorse in pacchetti che dovrebbero essere utilizzabili nel contesto di una pagina web. Questi percorsi sono relativi alla radice del pacchetto e possono contenere caratteri jolly. Per Ad esempio, un'estensione che inserisce uno script di contenuti con l'intento di creare alcune dell'interfaccia di example.com consentirebbe l'utilizzo di 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 sarebbero quindi disponibili in una pagina web tramite l'URL chrome-extension://[PACKAGE ID]/[PATH], che può essere generato con extension.getURL. . Le risorse incluse nella lista consentita vengono pubblicate con intestazioni CORS appropriate, in modo che siano disponibili tramite meccanismi come l'XHR.

La navigazione da un'origine web a una risorsa di estensione verrà bloccata a meno che la risorsa non sia elencate come "accessibili al web". Nota questi casi angolo:

  • Quando un'estensione utilizza le API webRequest o declarativeWebRequest per reindirizzare un pubblico a una risorsa non accessibile dal web, viene bloccata anche questa richiesta.
  • Quanto sopra vale anche se la risorsa non accessibile dal web è di proprietà dell'utente che ha eseguito il reindirizzamento .

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

Prima della versione 2 del file manifest era possibile accedere a tutte le risorse di un'estensione da qualsiasi pagina del sul web. Questo ha consentito a un sito web dannoso di improntare le impronte delle estensioni installate da un utente oppure sfruttare le vulnerabilità (ad esempio i bug XSS) all'interno delle estensioni installate. Limitazione la disponibilità solo a risorse che sono espressamente intese ad essere accessibili dal web ridurre al minimo la superficie di attacco disponibile e tutelare 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 inseriti 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 se lo fai se imposti questa proprietà, verrà trattata come un elenco completo di tutte le risorse incluse nella lista consentita. Le risorse non elencate verranno bloccate.