Ciao Ragazzi,
volevo tentare di evitare un possibile problema di
Cross Site Scripting , ovvero una vulnerabilità che affligge siti web con scarso controllo di variabili derivate da input dell'utente (spesso variabili GET)


Avevo pensato ad una soluzione del genere:

<script>

function RemoveBad(strTemp) {
strTemp = strTemp.replace(/\<|\>|\"|\'|\%|\;|\(|\)|\&|\+|\-/g,"");
return ;
}

var pluto = '<?php print($_GET['test']) ?>';

var ciao = RemoveBad(pluto);
</script>

Sostanzialmente una funzione RemoveBad depura la stringa da eventuali caratteri come > ' predenti nella variabile test passata in test.

Il mio problema attuale è che se l'url inserita è la seguente :

//localhost/cross.php?test=<script>alert('ciao')</script>


la pagina viene eseguita fino a var pluto = '<?php print($_GET['test'])
poichè incontra il tag </script>

esce fuori dal blocco <script>
e scrive il rimanente blocco:

';

var ciao = RemoveBad(pluto);
</script>


all'interno dell'HTML

Qualcuno riesce ad aiutarmi?

Grazie