2014-07-21 10 views
8

Ho una pagina che ho impostato lo script src della politica di sicurezza contenuti in questo modo:Perché questo javascript non è bloccato dalla politica di sicurezza del contenuto?

script-src 'self' *.uservoice.com *.intuit.com ajax.googleapis.com localhost:* 

Quando carico la pagina con uno script inline hard-coded ho creato io stesso per testare, è bloccato come previsto:

rifiutato di eseguire lo script inline perché viola il seguente contenuti direttiva politica di sicurezza: "script src 'sé' * * .uservoice.com .intuit.com ajax.googleapis.com localhost: * ". È necessaria la parola chiave "non sicura", un hash ("sha256 -...") o un nonce ("nonce -...") per abilitare l'esecuzione in linea.

Tuttavia, quando inserisco un nuovo tag script in modo dinamico, lo script non è bloccato, per esempio, questo esegue ancora:

$("body").append("<script>alert('xss');</script>") 

sto usando Chrome come browser qui per il test. Speravo che anche questo script venisse bloccato, poiché ciò aiuterebbe davvero a prevenire xss. C'è qualcosa che posso cambiare per bloccare anche questo tipo di script?

+2

Perché avete bisogno per bloccare questo? Questo è perfettamente sicuro, a meno che non ti fidi del tuo codice che stai aggiungendo (in tal caso, devi disinfettarlo). – soktinpk

+1

Scrivere codice JavaScript sicuro? – Ryan

+3

jQuery 'eval'uates'

Problemi correlati