Visualizzazione risultati 1 fino 8 di 8

Discussione: Tag HTML in form di registrazione. Evitare quelli pericolosi

  1. #1
    Guest

    Predefinito Tag HTML in form di registrazione. Evitare quelli pericolosi

    Salve a tutti.
    Ho realizzato un blog, e come ogni bravo blog, c'č un campo in cui l'utente scrive il suo nome, la sua email, e una textarea dove l'utente scrive tutti i suoi commenti (tipo il blog di beppegrillo).
    Come posso fare ad evitare che l'utente scriva dei tag HTML nella textarea, che possono minare la sicurezza del mio sito?
    Inoltre, non voglio che TUTTI indistintamente i tag messi nella textarea vengano vietati, infatti voglio che quantomeno sia possibile, se l'utente lo vuole, inserire almeno i tag <b> </b> per il grassetto, o quelli di sottolineatura.
    Il blog č realizzato in php e usa MySQL.

  2. #2
    Guest

    Predefinito

    devi utilizzare le espressioni regolari...

  3. #3
    Guest

    Predefinito

    Ho trovato una maniera migliore...


    $commento= strip_tags(($_POST['commento']),'<a><b><i><u>');


    O mi sconsigli di usare questa forma?

  4. #4
    Guest

    Predefinito

    Comunque attento con i <b> e </b> perche' rischi che qualcuno ti faccia diventare bold tutto il sito!
    Io non accetetrei nessun tag

  5. #5
    Guest

    Predefinito

    con le espressioni regolari puoi fare:
    Codice PHP:
    $testo = $_POST['testo'];
    $testo = preg_replace("/\[B\](.+)\[B\]/is", "<b>\\1</b>", $testo);
    echo
    $testo;
    poi basta bambiare i tag ke vuoi e ripetere il codice xmq questo č molto + sicuro...

    ciao ^__^

  6. #6
    Guest

    Predefinito

    Ok grazie! Penso che a questo punto usero' questa espressione regolare. Voglio provare a fare un meccanismo di Bold a tasto, tipo quello usato in questo stesso forum.. Vediamo che ne verrā fuori...

  7. #7
    Guest

    Predefinito

    cmq quel codice cambia [B] con <b> invece se vuoi contrallare se c'č inserito un tag devi usare:

    Codice PHP:
    if( preg_match_all("/\<b\>(.+)\<\/b\>/is", $testo, $reg) )
    {
    die(
    'Il tag &lt;b&gt; non č consentito');
    }
    prova cosi

    ciao ^__^

  8. #8
    Guest

    Predefinito

    Grazie di tutto Joystock :)
    In giro per la rete ho trovato questo.. Sembra un buon script per evitare i tag come ti sembra?

    //if you only want to have the text within the tags, you can use this function:
    function showtextintags($text)
    {
    $text = preg_replace("/(\<script)(.*?)(script>)/si", "dada", "$text");
    $text = strip_tags($text);
    $text = str_replace("<!--", "&lt;!--", $text);
    $text = preg_replace("/(\<)(.*?)(--\>)/mi", "".nl2br("\\2")."", $text);
    return $text;
    }
    Ultima modifica di attorianzo : 08-12-2005 alle ore 14.27.59

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •