Manifest - Sandbox

Avviso: a partire dalla versione 57, in Chrome non sarà più possibile inserire contenuti web esterni (inclusi frame e script incorporati) all'interno delle pagine con sandbox. Utilizza invece una webview.

Definisce una raccolta di pagine di app o estensioni da pubblicare in un'origine univoca con sandbox e, facoltativamente, un criterio di sicurezza del contenuto da utilizzare con queste pagine. La presenza in una sandbox ha due implicazioni:

  1. Una pagina con sandbox non avrà accesso alle API delle estensioni o delle app, né l'accesso diretto a pagine non sandbox (potrebbe comunicare con le pagine tramite postMessage()).
  2. Una pagina con sandbox non è soggetta ai Criteri di sicurezza del contenuto (CSP) utilizzati dal resto dell'app o dell'estensione (ha un proprio valore CSP separato). Ciò significa che, ad esempio, è possibile utilizzare script incorporato e eval.

    Ad esempio, ecco come specificare che due pagine di estensioni devono essere pubblicate in un sandbox con un CSP personalizzato:

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

    Se non specificato, il valore predefinito per content_security_policy è sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';. Puoi specificare il valore CSP per limitare ulteriormente la sandbox, ma deve avere l'istruzione sandbox e potrebbe non avere il token allow-same-origin (consulta la specifica HTML5 per i possibili token sandbox). Inoltre, il CSP specificato potrebbe non consentire il caricamento di contenuti web esterni all'interno di pagine con sandbox.

Tieni presente che devi elencare solo le pagine che ti aspettavi venissero caricate in finestre o frame. Le risorse utilizzate dalle pagine con sandbox (ad esempio i fogli di stile o i file di origine JavaScript) non devono essere visualizzate nell'elenco sandboxed_page, utilizzeranno la sandbox della pagina in cui le incorpora.

"Utilizzo di eval nelle estensioni di Chrome. Safely." fornisce maggiori dettagli sull'implementazione di un flusso di lavoro di sandboxing che consente l'utilizzo di librerie che altrimenti potrebbero avere problemi durante l'esecuzione in base ai Criteri di sicurezza del contenuto predefiniti dell'estensione.

La pagina con sandbox può essere specificata solo quando utilizzi manifest_version 2 o versioni successive.