Avviso: a partire dalla versione 57, Chrome non consentirà più contenuti web esterni (inclusi frame e script incorporati) all'interno di pagine con sandbox. Utilizza una webview.
Definisce una raccolta di pagine di app o estensioni da pubblicare in un'origine unica in sandbox e, facoltativamente, una Content Security Policy da utilizzare. L'utilizzo di una sandbox ha due implicazioni:
- Una pagina in sandbox non avrà accesso alle API di estensioni o app né accesso diretto a
pagine non in sandbox (può comunicare con queste tramite
postMessage()). Una pagina in sandbox non è soggetta alla Content Security Policy (CSP) utilizzata dal resto dell'app o dell'estensione (ha un proprio valore CSP separato). Ciò significa che, ad esempio, può utilizzare script incorporati e
eval.Ad esempio, ecco come specificare che due pagine di estensione devono essere pubblicate in una 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 di
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 la direttivasandboxe non può avere il tokenallow-same-origin(consulta le specifiche HTML5 per i possibili token sandbox). Inoltre, la CSP che specifichi potrebbe non consentire il caricamento di contenuti web esterni all'interno di pagine con sandbox.
Tieni presente che devi elencare solo le pagine che prevedi di caricare in finestre o frame. Le risorse
utilizzate dalle pagine in sandbox (ad es. fogli di stile o file di origine JavaScript) non devono essere visualizzate nell'elenco
sandboxed_page, in quanto utilizzeranno la sandbox della pagina che le incorpora.
"Using eval in Chrome Extensions. in modo sicuro" descrive in dettaglio l'implementazione di un flusso di lavoro di sandboxing che consente l'utilizzo di librerie che altrimenti avrebbero problemi di esecuzione in base alla Content Security Policy predefinita dell'estensione.
La pagina in sandbox può essere specificata solo quando si utilizza manifest_version 2 o versioni successive.