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?
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
Scrivere codice JavaScript sicuro? – Ryan
jQuery 'eval'uates'