Manifest – Im Web zugängliche Ressourcen

Ein Array von Strings, die die Pfade von Ressourcenpaketen angeben, die in der Kontext einer Webseite. Diese Pfade beziehen sich auf den Paketstamm und können Platzhalter enthalten. Für eine Erweiterung, die ein Inhaltsskript einfügt, um ein benutzerdefiniertes würde die Benutzeroberfläche von example.com alle Ressourcen zulassen, die für die Benutzeroberfläche erforderlich sind (Bilder, Symbole, Stylesheets, Skripte usw.:

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

Diese Ressourcen wären dann auf einer Webseite über die URL chrome-extension://[PACKAGE ID]/[PATH], der mit extension.getURL generiert werden kann . Ressourcen auf der Zulassungsliste werden mit entsprechenden CORS-Headern bereitgestellt, damit sie verfügbar sind über Mechanismen wie XHR.

Eine Navigation von einem Webursprung zu einer Erweiterungsressource wird blockiert, es sei denn, die Ressource ist als über das Internet zugänglich aufgeführt. Beachten Sie folgende Sonderfälle:

  • Wenn eine Erweiterung die webRequest oder declarativeWebRequest API verwendet, um eine öffentliche Ressourcenanfrage an eine Ressource, die nicht über das Internet zugänglich ist, wird diese Anfrage ebenfalls blockiert.
  • Dies gilt auch dann, wenn die Ressource, auf die nicht über das Internet zugegriffen werden kann, der Weiterleitung gehört. .

Content-Skripts selbst müssen nicht auf die Zulassungsliste gesetzt werden.

Vor Manifestversion 2 konnte auf alle Ressourcen einer Erweiterung von jeder Seite des Web. Dadurch konnte eine schädliche Website an den installierten Erweiterungen einen Fingerabdruck hinterlassen. oder Sicherheitslücken (z. B. XSS-Fehler) in installierten Erweiterungen ausnutzen. Begrenzung Verfügbarkeit nur für Ressourcen, die ausdrücklich für das Internet zugänglich sind, die verfügbare Angriffsfläche minimieren und die Privatsphäre der Nutzer schützen.

Standardverfügbarkeit

Ressourcen in Paketen mit manifest_version 2 oder höher werden standardmäßig blockiert. und muss für die Verwendung über diese Property auf die Zulassungsliste gesetzt werden.

Ressourcen innerhalb von Paketen, die manifest_version 1 verwenden, sind standardmäßig verfügbar, aber falls du es tust festgelegt haben, wird sie als vollständige Liste aller Ressourcen auf der Zulassungsliste behandelt. Nicht aufgeführte Ressourcen werden blockiert.