Manifest - Sandbox

Waarschuwing: Vanaf versie 57 staat Chrome geen externe webinhoud (inclusief ingesloten frames en scripts) meer toe in afgeschermde pagina's. Gebruik in plaats daarvan een webweergave .

Definieert een verzameling app- of extensiepagina's die moeten worden aangeboden vanuit een unieke, afgeschermde oorsprong, en optioneel een Content Security Policy (CSP) die daarbij moet worden gebruikt. Het gebruik van een sandbox heeft twee implicaties:

  1. Een pagina in een sandbox heeft geen toegang tot extensie- of app-API's, noch directe toegang tot pagina's die niet in een sandbox draaien (communicatie met deze pagina's is wel mogelijk via postMessage() ).
  2. Een pagina in een sandbox valt niet onder het Content Security Policy (CSP) dat door de rest van de app of extensie wordt gebruikt (deze heeft een eigen, aparte CSP-waarde). Dit betekent bijvoorbeeld dat er inline scripts en eval gebruikt kunnen worden.

    Hier is bijvoorbeeld hoe je kunt specificeren dat twee extensiepagina's in een sandbox met een aangepaste CSP moeten worden weergegeven:

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

    Indien niet gespecificeerd, is de standaardwaarde 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 eigen CSP-waarde specificeren om de sandbox verder te beperken, maar deze moet de sandbox richtlijn bevatten en mag niet het token allow-same-origin bevatten (zie de HTML5-specificatie voor mogelijke sandbox-tokens). Bovendien mag de door u gespecificeerde CSP het laden van externe webinhoud binnen sandboxed pagina's niet toestaan.

Houd er rekening mee dat u alleen pagina's hoeft op te geven die naar verwachting in vensters of frames worden geladen. Bronnen die door pagina's in een sandbox worden gebruikt (bijvoorbeeld stylesheets of JavaScript-bronbestanden) hoeven niet in de lijst sandboxed_page te verschijnen; deze gebruiken de sandbox van de pagina waarin ze zijn ingesloten.

"Using eval in Chrome Extensions. Safely." gaat dieper in op het implementeren van een sandbox-workflow waarmee bibliotheken kunnen worden gebruikt die anders problemen zouden ondervinden bij het uitvoeren onder het standaard Content Security Policy van de extensie.

Een sandboxed pagina kan alleen worden opgegeven bij gebruik van manifest_version 2 of hoger.