• User

    Risolvere problmema Cross Site Scripting

    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


  • ModSenior

    Penso che un controllo javascript sia piuttosto inutile... forse meglio che fai la protezione lato server e quindi da php...


  • User Attivo

    usa la funzione htmlspecialchars 😉