L'esempio di codice che hai fornito è una vulnerabilità cross site scripting , perché consente l'esecuzione di JavaScript arbitrario , supponendo che "a" non sia attendibile:
a = "\"); evil(); document.write(\""
Un sito dannoso può utilizzare un IFrame per sfruttare un sito vulnerabile tramite CSRF :
In un tipico attacco CSRF, il browser viene ingannato da un sito dannoso per inviare una richiesta a un sito vulnerabile. Il browser includerà i cookie per quel sito, quindi la richiesta verrà autenticata dal punto di vista del sito vulnerabile.
Sebbene esistano numerosi modi per attivare la richiesta GET, la richiesta POST cross site viene generalmente creata inviando un modulo. Mentre JavaScript può essere utilizzato per attivare automaticamente l'invio, non può essere utilizzato per nascondere la pagina dei risultati . Quindi, con un semplice attacco CSRF basato su POST, l'utente verrà avvisato dopo il fatto.
Quindi il trucco consiste nel mettere il modulo di invio automatico malevolo in un IFrame invisibile . Pertanto, l'utente non vedrà la pagina web che mostra il risultato della presentazione.
Un attacco correlato è click-jacking : il sito vulnerabile (ad es. pulsante) viene caricato in un Iframe trasparente e JavaScript viene utilizzato per spostarlo nella posizione appropriata e tenerlo posizionato sul cursore del mouse. Se l'utente si sforza di cliccare su qualsiasi cosa sul sito malevolo, farà invece clic sullo Iframe trasparente.