2012-07-25 9 views
10

Sto lavorando a un'applicazione web singola. Sto facendo il rendering creando direttamente i nodi DOM. In particolare, tutti i dati forniti dall'utente vengono aggiunti alla pagina creando nodi di testo con document.createTextNode("user data").CreateTextNode è completamente sicuro da HTML injection & XSS?

Questo approccio evita qualsiasi possibilità di iniezione HTML, cross site scripting (XSS) e tutte le altre cose malvagie che gli utenti potrebbero fare?

risposta

9

Crea un nodo di testo normale, quindi sì, per quanto possibile.

È possibile creare un problema XSS utilizzando un metodo non sicuro per ottenere i dati da qualsiasi canale in cui viene immesso a createTextNode.

ad es. Di seguito sarebbe pericoloso:

document.createTextNode('<?php echo $_GET['xss']; ?>'); 

... ma il pericolo è dal PHP echo, non il JavaScript createTextNode.

+0

Non ho dimestichezza con PHP. Questo esempio consente all'utente di richiedere dati da altrove e di inserirlo come testo nella pagina? –

+0

@breischl - Il PHP prende input dalla stringa di query dell'URL (che è dati esterni) e lo rilascia nell'output senza fuggire. – Quentin

+0

Ma sarebbe comunque prodotto come testo normale, indipendentemente da cosa ci fosse dentro, giusto? Quindi non potevi fare nulla nel browser, a parte la visualizzazione di un testo? –

Problemi correlati