Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Cross Site Scripting

  1. #1

    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

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    221
    lo devi fare lato server!
    http://it.php.net/strip_tags
    ciao!
    ciAo

  3. #3
    Perfetto Grazie mille per la risposta.

    Ho però un altro problema,
    la mia pagina utilizza il motore di ricerca interno di google.

    la pagina di risposta attualmente non è una pagina HTML o PHP "mia" ma restituita dalla GSA di Google alla quale viene data una personalizzazione tramite un XSLT.


    Come posso fare per evitare situazioni di possibili attacchi cross site scripting ?

    grazie mille.

    Stefano

  4. #4

  5. #5
    Utente di HTML.it L'avatar di P4n1c
    Registrato dal
    Feb 2008
    Messaggi
    116
    io rimango della convinzione che htmlspecialchars sia migliori per certi versi...

    cmq non capisco il secondo problema... se la risposta è di una pagina di google qual'è il problema ? al massimo la xss starà su google e non sul tuo sito.

  6. #6
    tutto dipende dal tipo di contenuti che devi ricevere dall'utente

    Se non deve essere supportato HTML puoi limitarti a lanciare uno stript tags, o alternativamente puoi usare htmlentities

    Inoltre molto dipende dal backend dei dati: se usi utf8 htmlentities serve relativamente alternativamente se usi latin1 è invece importante metterlo per evitare problemi con le codifiche

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.