Manifest – Sandbox

Definiert eine Sammlung von Erweiterungsseiten, die in einem eindeutigen Sandbox-Ursprung bereitgestellt werden sollen. Die Die Content Security Policy, die von den in einer Sandbox ausgeführten Seiten einer Erweiterung verwendet wird, ist in der "content_security_policy"-Schlüssel.

Die Verwendung in einer Sandbox hat zwei Auswirkungen:

  1. Eine Seite, die in einer Sandbox ausgeführt wird, hat keinen Zugriff auf Erweiterungs-APIs oder direkten Zugriff auf Seiten ohne Sandbox. Diese kommunizieren möglicherweise über postMessage() mit ihnen.
  2. Seiten, die in einer Sandbox ausgeführt werden, unterliegen nicht der Content Security Policy (CSP), die vom Rest der Die Erweiterung (sie hat einen eigenen CSP-Wert). Das bedeutet, dass es zum Beispiel Verwenden Sie Inline-Script und eval().

So können Sie beispielsweise festlegen, dass zwei Erweiterungsseiten in einer Sandbox mit einem benutzerdefinierte CSP:

{
  ...
  "content_security_policy": {
    "sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
  },
  "sandbox": {
    "pages": [
      "page1.html",
      "directory/page2.html"
    ]
  },
  ...
}

Wenn keine Angabe erfolgt, lautet der Standardwert für "content_security_policy" sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';.

Sie können Ihren CSP-Wert angeben, um die Sandbox noch weiter einzuschränken, aber er MÜSSEN die Parameter "sandbox"-Anweisung und DARF NICHT das allow-same-origin-Token enthalten (siehe HTML5 Spezifikation für mögliche Sandbox-Tokens.

Beachten Sie, dass Sie nur Seiten auflisten müssen, bei denen Sie erwarten, dass sie in Fenstern oder Frames geladen werden. Ressourcen Seiten, die in einer Sandbox verwendet werden (z.B. Stylesheets oder JavaScript-Quelldateien), müssen nicht im pages aufgelistet, weil sie die Sandbox des Frames verwenden, in dem sie eingebettet sind.

Unter Verwendung von eval() in Chrome Extensions erfahren Sie mehr über die Implementierung eines Sandboxing-Workflow, der die Verwendung von Bibliotheken ermöglicht, bei denen andernfalls Probleme auftreten würden, Content Security Policy der Erweiterung.