Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    htmlspecialchars non converte

    Dopo una ricerca ho visto che htmlspecialchars converte certi caratteri speciali, ho fatto una prova ed ho inserito nel form < e > ma a video stampa la stessa cosa e cioè < >, ma non dovrebbe convertire in entità html?

    codice:
    $messaggio = htmlspecialchars(trim($_POST['messaggio']));

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    quello che vedi tu a video è < > ma se guardi il cidice html di quella pagina vedi che sono stati convertiti in &lt; e &gt; poi il browser li ha interpretati come maggiore e minore

    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  3. #3
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da las
    quello che vedi tu a video è < > ma se guardi il cidice html di quella pagina vedi che sono stati convertiti in &lt; e &gt; poi il browser li ha interpretati come maggiore e minore

    Allora che cambia? Possono sempre essere pericolosi, uno ci può inserire uno script lo stesso

  4. #4
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    no perchè uno script per essere eseguito deve essere <script> nel codice HTML e in quel caso tu non lo vedi a video, invece se nell'HTML c'è &lt;SCRIPT&gt; tu a video vedi <SCRIPT> e il browser non interpreta nulla.

    ... non so se è chiaro, è un po complicato da spiegare, è molto più facile fare un esempio, prova a fare:

    Codice PHP:
    <?php
    echo @$_POST['messaggio1'];
    echo 
    htmlspecialchars(trim(@$_POST['messaggio2']));

    ?>

    <form action="<?= $_SERVER['PHP_SELF'];?>" method="post">
    <textarea name="messaggio1" rows="5" cols="30"></textarea>
    <textarea name="messaggio2" rows="5" cols="30"></textarea>

    <input type="submit" name="invia" value="Invia" />
    </form>
    prova a mettere nella prima textarea <SCRIPT>alert('Prova1')</SCRIPT> e nella seconda <SCRIPT>alert('Prova2')</SCRIPT> e vedrai che ti appare un allert con la scritta prova1 mentre il secondo script viene proprio scritto nella pagina ma non eseguito
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

  5. #5
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da las
    no perchè uno script per essere eseguito deve essere <script> nel codice HTML e in quel caso tu non lo vedi a video, invece se nell'HTML c'è &lt;SCRIPT&gt; tu a video vedi <SCRIPT> e il browser non interpreta nulla.

    ... non so se è chiaro, è un po complicato da spiegare, è molto più facile fare un esempio, prova a fare:

    Codice PHP:
    <?php
    echo @$_POST['messaggio1'];
    echo 
    htmlspecialchars(trim(@$_POST['messaggio2']));

    ?>

    <form action="<?= $_SERVER['PHP_SELF'];?>" method="post">
    <textarea name="messaggio1" rows="5" cols="30"></textarea>
    <textarea name="messaggio2" rows="5" cols="30"></textarea>

    <input type="submit" name="invia" value="Invia" />
    </form>
    prova a mettere nella prima textarea <SCRIPT>alert('Prova1')</SCRIPT> e nella seconda <SCRIPT>alert('Prova2')</SCRIPT> e vedrai che ti appare un allert con la scritta prova1 mentre il secondo script viene proprio scritto nella pagina ma non eseguito
    Ho visto, perciò non è pericoloso proprio perché non è interpretato dal browser.

    Oltre a questi 2 < e > ci sono altri caratteri pericolosi?

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.