Definiert eine Sammlung von Erweiterungsseiten, die in einem eindeutigen Sandbox-Ursprung bereitgestellt werden sollen. Die Content Security Policy, die von den in der Sandbox ausgeführten Seiten einer Erweiterung verwendet wird, wird im Schlüssel "content_security_policy"
angegeben.
Die Verwendung einer Sandbox hat zwei Auswirkungen:
- Eine Seite in einer Sandbox hat keinen Zugriff auf Erweiterungs-APIs und keinen direkten Zugriff auf Seiten ohne Sandbox. Sie kann über
postMessage()
mit ihnen kommunizieren. - Eine Seite, die in einer Sandbox ausgeführt wird, unterliegt nicht der Content Security Policy (CSP), die vom Rest der Erweiterung verwendet wird, da sie einen eigenen separaten CSP-Wert hat. Das bedeutet, dass sie beispielsweise ein Inline-Script und
eval()
verwenden kann.
So können Sie beispielsweise angeben, dass zwei Erweiterungsseiten in einer Sandbox mit einer benutzerdefinierten CSP bereitgestellt werden sollen:
{
...
"content_security_policy": {
"sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
},
"sandbox": {
"pages": [
"page1.html",
"directory/page2.html"
]
},
...
}
Wenn keine Angabe erfolgt, gilt für "content_security_policy"
der Standardwert 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"
enthalten und DARF NICHT das Token allow-same-origin
enthalten. Mögliche Sandbox-Tokens finden Sie in der HTML5-Spezifikation.
Beachten Sie, dass Sie nur die Seiten auflisten müssen, die voraussichtlich in Fenstern oder Frames geladen werden. Ressourcen, die von Seiten in einer Sandbox verwendet werden (z.B. Stylesheets oder JavaScript-Quelldateien), müssen nicht in der Liste pages
aufgeführt werden, da sie die Sandbox des Frames verwenden, in dem sie eingebettet sind.
Unter „eval()“ in Chrome-Erweiterungen verwenden wird die Implementierung eines Sandbox-Workflows genauer erläutert, 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.