Definieert een verzameling extensiepagina's die moeten worden weergegeven in een unieke sandbox-oorsprong. Het inhoudbeveiligingsbeleid dat wordt gebruikt door de sandboxpagina's van een extensie wordt gespecificeerd in de sleutel "content_security_policy"
.
Het feit dat je in een sandbox zit, heeft twee gevolgen:
- Een pagina in een sandbox heeft geen toegang tot extensie-API's, of directe toegang tot niet-sandbox-pagina's (de pagina kan met deze pagina's communiceren via
postMessage()
). - Een sandboxpagina valt niet onder het Content Security Policy (CSP) dat door de rest van de extensie wordt gebruikt (deze heeft zijn eigen afzonderlijke CSP-waarde). Dit betekent dat het bijvoorbeeld inline script en
eval()
kan gebruiken.
U kunt als volgt bijvoorbeeld opgeven dat twee extensiepagina's moeten worden weergegeven in een sandbox met een aangepaste CSP:
{
...
"content_security_policy": {
"sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
},
"sandbox": {
"pages": [
"page1.html",
"directory/page2.html"
]
},
...
}
Indien niet gespecificeerd, is de standaardwaarde voor "content_security_policy"
sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';
.
U kunt uw CSP-waarde opgeven om de sandbox nog verder te beperken, maar deze MOET de richtlijn "sandbox"
bevatten en MOET NIET het token allow-same-origin
bevatten (zie de HTML5-specificatie voor mogelijke sandbox-tokens).
Houd er rekening mee dat u alleen pagina's hoeft op te geven waarvan u verwacht dat ze in vensters of frames worden geladen. Bronnen die worden gebruikt door pagina's in een sandbox (bijvoorbeeld stylesheets of JavaScript-bronbestanden) hoeven niet in de pages
te verschijnen, omdat ze de sandbox zullen gebruiken van het frame waarin ze zijn ingesloten.
"Gebruik eval() in Chrome-extensies" gaat dieper in op het implementeren van een sandbox-workflow die het gebruik van bibliotheken mogelijk maakt die anders problemen zouden ondervinden bij het uitvoeren onder het standaard Content Security Policy van de extensie.