Manifest – Sandbox

Warnung:Ab Version 57 erlaubt Chrome keine externen Webinhalte (einschließlich eingebetteter Frames und Scripts) mehr auf Sandbox-Seiten. Verwenden Sie stattdessen eine WebView.

Definiert eine Sammlung von App- oder Erweiterungsseiten, die in einem eindeutigen Sandbox-Ursprung bereitgestellt werden. Optional kann auch eine Content Security Policy dafür verwendet werden. Das hat zwei Auswirkungen:

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

    So können Sie beispielsweise angeben, dass zwei Erweiterungsseiten in einer Sandbox mit einer benutzerdefinierten CSP ausgeliefert werden sollen:

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

    Wenn keine Angabe erfolgt, 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';. Du kannst deinen CSP-Wert angeben, um die Sandbox noch weiter einzuschränken. Allerdings muss sie die Anweisung sandbox und nicht das allow-same-origin-Token haben. Mögliche Sandbox-Tokens findest du in der HTML5-Spezifikation. Außerdem lässt der von Ihnen angegebene CSP möglicherweise nicht zu, dass externe Webinhalte auf Seiten mit Sandbox geladen werden.

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

„eval in Chrome-Erweiterungen verwenden. Safely“ wird die Implementierung eines Sandboxing-Workflows beschrieben, der die Verwendung von Bibliotheken ermöglicht, die andernfalls bei der Ausführung gemäß der Standard-Content Security Policy der Erweiterung Probleme verursachen würden.

Die Seite in der Sandbox kann nur angegeben werden, wenn manifest_version 2 oder höher verwendet wird.