Manifest - Sandbox

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:

  1. Een pagina in een sandbox heeft geen toegang tot extensie-API's of directe toegang tot pagina's die niet in een sandbox zijn geplaatst (de pagina kan met deze pagina's communiceren via postMessage() ).
  2. 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 de uitvoering onder het standaard Content Security Policy van de extensie.