Fichier manifeste – Ressources accessibles sur le Web

Tableau de chaînes spécifiant les chemins d'accès aux ressources empaquetées qui sont censées être utilisables dans le le contexte d'une page Web. Ces chemins d'accès sont relatifs à la racine du package et peuvent contenir des caractères génériques. Pour Il peut s'agir, par exemple, d'une extension qui injecte un script de contenu dans le but de créer des pour example.com autoriserait toutes les ressources requises par l'interface (images, icônes, les feuilles de style, scripts, etc.) comme suit:

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

Ces ressources seront alors disponibles sur une page Web via l'URL chrome-extension://[PACKAGE ID]/[PATH], qui peut être généré avec la méthode extension.getURL . Les ressources ajoutées à la liste d'autorisation sont diffusées avec les en-têtes CORS appropriés afin d'être disponibles via des mécanismes tels que XHR.

La navigation depuis une origine Web vers une ressource d'extension sera bloquée, sauf si la ressource est répertoriés comme accessibles sur le Web. Notez les cas particuliers suivants:

  • Lorsqu'une extension utilise les API webRequest ou declarativeWebRequest pour rediriger un objet public demande de ressource vers une ressource qui n'est pas accessible sur le Web, cette requête est également bloquée.
  • Ce qui précède est vrai même si la ressource qui n'est pas accessible sur le Web appartient à la fonction .

Les scripts de contenu eux-mêmes n'ont pas besoin d'être ajoutés à la liste d'autorisation.

Avant la version 2 du fichier manifeste, toutes les ressources des extensions étaient accessibles depuis n'importe quelle page de la Web. Cela a permis à un site Web malveillant d'empreinte les extensions installées par un utilisateur. ou d'exploiter des failles (par exemple, des bogues XSS) dans les extensions installées. Limitation la disponibilité aux seules ressources qui sont explicitement destinées à être accessibles sur le Web sont utilisées à la fois minimiser la surface d'attaque disponible et protéger la confidentialité des utilisateurs.

Disponibilité par défaut

Les ressources contenues dans les packages utilisant manifest_version 2 ou une version ultérieure sont bloquées par défaut. et doivent être ajoutées à la liste d'autorisation pour être utilisées via cette propriété.

Les ressources contenues dans les packages utilisant manifest_version 1 sont disponibles par défaut, mais si vous le faites si vous définissez cette propriété, elle sera traitée comme une liste complète de toutes les ressources ajoutées à la liste d'autorisation. Les ressources non listées seront bloquées.