Manifest - Sandbox

Waarschuwing: vanaf versie 57 staat Chrome geen externe webinhoud (inclusief ingesloten frames en scripts) meer toe in sandbox-pagina's. Gebruik in plaats daarvan een webview .

Definieert een verzameling app- of extensiepagina's die moeten worden weergegeven in een unieke sandbox-oorsprong, en optioneel een inhoudbeveiligingsbeleid dat daarbij moet worden gebruikt. Het feit dat je in een sandbox zit, heeft twee gevolgen:

  1. Een pagina in een sandbox heeft geen toegang tot extensie- of app-API's, of directe toegang tot niet-sandbox-pagina's (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 app of 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:

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

    Als dit niet is opgegeven, 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 sandbox instructie hebben en mag niet het token allow-same-origin hebben (zie de HTML5-specificatie voor mogelijke sandbox-tokens). Bovendien staat de CSP die u opgeeft mogelijk niet toe dat externe webinhoud op sandboxpagina's wordt geladen.

Houd er rekening mee dat u alleen pagina's hoeft op te geven waarvan u verwachtte dat ze in vensters of frames zouden worden geladen. Bronnen die worden gebruikt door in de sandbox geplaatste pagina's (bijvoorbeeld stylesheets of JavaScript-bronbestanden) hoeven niet te verschijnen in de lijst met sandboxed_page ; ze zullen de sandbox gebruiken van de pagina waarop ze zijn ingesloten.

"Eval gebruiken in Chrome-extensies. Veilig." 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.

Een sandboxpagina mag alleen worden opgegeven bij gebruik van manifest_version 2 of hoger.