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