Manifest – Sandbox

Warnung:Ab Version 57 lässt Chrome keine externen Webinhalte (einschließlich eingebetteter Frames und Skripts) mehr in Sandbox-Seiten zu. Verwenden Sie stattdessen eine webview.

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

  1. Eine Seite, die in einer Sandbox ausgeführt wird, hat keinen Zugriff auf Erweiterungs- oder App-APIs und auch keinen direkten Zugriff auf Seiten, die nicht in einer Sandbox ausgeführt werden. Die Seite kann ü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-Skripts und eval verwenden kann.

    So kannst du 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 nicht angegeben, ist 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 den CSP-Wert angeben, um die Sandbox weiter einzuschränken. Er muss jedoch die Anweisung sandbox haben und darf nicht das Token allow-same-origin enthalten. Mögliche Sandbox-Tokens finden Sie in der HTML5-Spezifikation. Außerdem lässt die angegebene CSP möglicherweise nicht zu, dass externe Webinhalte in Sandbox-Seiten geladen werden.

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

„Mit eval in Chrome-Erweiterungen. Safely." geht näher auf die Implementierung eines Sandbox-Workflows ein, der die Verwendung von Bibliotheken ermöglicht, bei denen sonst unter der standardmäßigen Content Security Policy der Erweiterung Probleme bei der Ausführung auftreten würden.

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