2013-05-18 11 views
7

Sto provando a creare un'app packed di Chrome da una complicata web app. Attualmente sto ottenendo l'errore:Come impostare script-src in un'app packaged di Chrome?

Refused to execute inline event handler because it violates the following Content Security Policy directive: "default-src 'self' chrome-extension-resource:". Note that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.

Come imposto esplicitamente il criterio nel mio manifest.json? Ho provato cose come:

"content_security_policy": "default-src 'inline'; script-src 'inline'" 

ma ho ancora lo stesso messaggio di errore. La mia sintassi è errata o l'errore è un'aringa rossa?

risposta

14

Non è possibile allentare il CSP predefinito in un'app pacchettizzata. Se stai facendo qualcosa come <button id="foo" onclick="doSomething()"> allora dovresti invece includere un file JS separato nell'HTML dove fai un document.querySelector("#foo").onclick = doSomething; nel tuo gestore onload. Ciò sarà conforme al CSP e renderà la tua app più resistente agli attacchi XSS.

+2

avevo paura di questo. Vorrei che dicessero semplicemente che, piuttosto che implicare, potrei esplicitamente impostare un'opzione diversa. –

+1

Un punto giusto. Penso che quello che sta succedendo è che l'avvertimento viene attivato per il CSP * predefinito *, in modo che noi (sviluppatori di Chromium) abbiamo bisogno di aggiornarlo nel codice sorgente. Dal tuo punto di vista, come sviluppatore, l'avvertimento è un prurito che non puoi scalfire. Darò un occhiata. – sowbug

+0

Grazie. Mi sembra anche di ricevere il messaggio anche se provo a impostare esplicitamente una politica di sicurezza. –

1

Ho affrontato lo stesso problema, e io leggendo this document ho trovato il seguente:

"sandbox": { 
    "pages": ["sandboxed.html"] 
} 
Problemi correlati