Manifest – Sandbox

Warnung:Ab Version 57 erlaubt Chrome keine externen Webinhalte (einschließlich eingebetteter Frames und Skripts) mehr auf Seiten, die in einer Sandbox ausgeführt werden. Verwende stattdessen eine webview.

Definiert eine Sammlung von App- oder Erweiterungsseiten, die an einem eindeutigen, in einer Sandbox ausgeführten Ursprung bereitgestellt werden, und optional eine Content Security Policy für die Verwendung. Die Verwendung einer Sandbox hat zwei Auswirkungen:

  1. Eine in einer Sandbox ausgeführte Seite hat keinen Zugriff auf Erweiterungs- oder App-APIs und auch keinen direkten Zugriff auf Seiten ohne Sandbox (sie können über postMessage() mit ihnen kommunizieren).
  2. Eine Seite, die in einer Sandbox ausgeführt wird, unterliegt nicht der Content Security Policy (CSP), die vom Rest der Anwendung oder Erweiterung verwendet wird. Sie hat einen eigenen separaten CSP-Wert. Das bedeutet, dass sie beispielsweise Inline-Script und eval verwenden kann.

    So können Sie beispielsweise festlegen, dass zwei Erweiterungsseiten in einer Sandbox mit einer benutzerdefinierten CSP bereitgestellt werden:

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

    Wenn Sie nichts angeben, wird der Standardwert für content_security_policy auf sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self'; gesetzt. Sie können den CSP-Wert angeben, um die Sandbox noch weiter einzuschränken. Allerdings muss er die Anweisung sandbox und möglicherweise nicht das Token allow-same-origin enthalten. Mögliche Sandbox-Tokens finden Sie in der HTML5-Spezifikation. Außerdem lässt die von Ihnen angegebene CSP möglicherweise nicht zu, dass externe Webinhalte in Seiten, die in einer Sandbox ausgeführt werden, geladen werden.

Beachten Sie, dass Sie nur die Seiten auflisten müssen, die in Fenstern oder Frames geladen werden sollten. Ressourcen, die von in einer Sandbox ausgeführten Seiten verwendet werden (z. B. Stylesheets oder JavaScript-Quelldateien), müssen nicht in der sandboxed_page-Liste enthalten sein. Sie verwenden stattdessen die Sandbox der Seite, auf der sie eingebettet sind.

„Verwenden von eval in Chrome-Erweiterungen. Safely." erklärt Ihnen die Implementierung eines Sandbox-Workflows, der die Verwendung von Bibliotheken ermöglicht, bei denen sonst Probleme bei der Ausführung gemäß der standardmäßigen Content Security Policy der Erweiterung auftreten würden.

In einer Sandbox ausgeführte Seite kann nur bei Verwendung von manifest_version 2 oder höher angegeben werden.