Page 179 - Corso di PHP - Livello base
P. 179

27. La sicurezza in PHP: XSS e SQL Injection



                Iniziamo  in  questo  capitolo  una  breve  panoramica  su  due  dei
                problemi di sicurezza più comuni degli script PHP. Partiamo

                dal cosiddetto “Cross-site Scripting”, noto anche come XSS: si
                tratta di un problema, molto diffuso, che riguarda la sicurezza

                dei form e in particolare i form che non  applicano  controlli
                sui campi. Il malintenzionato può, tramite il form, far eseguire

                un codice JavaScript che magari rimanda a un suo sito dove è
                contenuto  uno  script  dannoso.  A  proposito:  ricordo  a  tutti
                quelli che leggono che alcune delle cose che sto per illustrare, se

                messe  in  pratica,  costituiscono  un  reato  penalmente
                perseguibile. Ve ne parlo solo affinché vi possiate difendere.


                Tornando al nostro XSS, prendiamo un semplicissimo form per
                inserire un messaggio:



                 <form action="xss.php" method="get">
                 Nome:<br />
                 <input type="text" name="nome" /><br />

                 Messaggio: <br />
                 <textarea rows="10" cols="20" name="messaggio"></textarea><br />

                 <input type="submit" name="invia" value="Invia!" /><br />
                 </form>


                E supponiamo che il codice della pagina xss.php sia strutturato
                in questo modo:


                 <?php


                 echo "Nome: {$_GET['nome']}";

                 echo "<br /><br />Messaggio: <br /><br />";
                 echo stripslashes($_GET['messaggio']);





                                                          179
   174   175   176   177   178   179   180   181   182   183   184