Invece di bloccare, puoi consentire l'inserimento di qualsiasi tag, ma puoi evitare l'esecuzione dello script quando produci un Politica di sicurezza dei contenuti .
Questo viene eseguito dall'output di un'intestazione HTTP su tutte le pagine del tuo sito (o per lo meno tutte le pagine di contenuti dell'utente).
per es.
Content-Security-Policy: default-src 'self'
consentirà l'accesso solo ai file di script sul tuo dominio. Se l'utente ha incluso uno qualsiasi dei propri codici in <script>
tag, attributi ( onclick="doEvil();"
) o codice di riferimento su altri domini ( <script src="http://www.example.com/evil.js"></script>
)nonverrebberoeseguiti.Sestaipercorrendoquestarotta,dovrestilimitaredefault-src
(cheinfluenzeràtuttodallerichiesteXHR,fontidifont,sorgentidiimmagini,ecc.)Aself
(cioèlastessaorigine)ocomeminimodovrestilimitarescript-src
estyle-src
cheimpedisconoscriptesternieinlineecodicecss.
L'unicolatonegativodiquestoapproccioècheibrowsermenorecentipotrebberononsupportareCSP.Potrestiessereingradodirilevarequestoequindimostrareunaversioneditestoinchiarodelcontenutoaquestiutenti.Adesempio,eliminatuttiitagequindiCodificaHTMLsull'output(perevitarecheeventualitagpossanoessersiintrodottidinascosto).Ibrowserdisupportosono elencati qui .