C'è un modo perfetto per fermare gli attacchi cross-site scripting. Evasione sensibile al contenuto; ad esempio, se il contenuto generato dall'utente viene inserito come contenuto in un documento HTML, HTML-escape &<>"'/
(potenzialmente consentire una piccola whitelist di tag consentiti come <b>
o di escape di tutto e utilizzare un linguaggio sicuro simile al markdown per consentire un pochi tag), se il contenuto generato dall'utente viene inserito in javascript, quindi javascript lo sfugge, ecc. (Vedi OWASP per ulteriori dettagli .)
Questo attacco fallirebbe gravemente quando qualcuno tentasse di usarlo per prevenire attacchi su pagine web generate dinamicamente.
Immagina di avere una pagina web che legge il tuo commento da un database e inserisce quel commento in una pagina HTML che viene pubblicata per l'utente.
Scrivi la tua pagina HTML in questo modo:
<disablescripts>
{{ untrusted_user_content_read_from_db }}
</disablescripts>
Bene quando {{untrusted_user_content_read_from_db}}
è impostato sul valore:
</disablescripts><script>alert("XSS -- gotcha!");</script><disablescripts>
quindi questo metodo di prevenzione fallisce quando il server web viene inviato sulla pagina Web html al browser come:
<disablescripts>
</disablescripts><script>alert("XSS -- gotcha!");</script><disablescripts>
</disablescripts>