Page 1298 - Informatica dalla A a Z
P. 1298

}

              echo “Numero:” . $_SESSION[‘conto’].””;
              ?>

           Con la solita funzione isset controlliamo che la variabile $_SESSION[‘conto’] non sia stata
           inizializzata: se non esiste, la creiamo e la impostiamo a 0, se invece esiste già la incremen-

           tiamo. Terminato il blocco if stampiamo la nostra variabile. Salviamo il file e chiamialo, per
           esempio, “fix.php” e lo inseriremo nella cartella esercizi di www di wamp.

           Ora apriamo il browser ed eliminiamo tutti i cookie presenti. Fatto questo colleghiamoci

           alla pagina appena creata:

                                 http://localhost/prova/fix.php?PHPSESSID=12345

           Aggiorniamo la pagina un tot di volte.


           Ora chiudiamo il browser e ne apriamo un altro. Noteremo che il conto non partrà da 0 ma
           dal numero effettuato in precedenza con il primo browser.

           Questo perché il codice malevolo ha fatto in modo che i dati di sessione inseriti dall’utente

           rimangano attivi, anche dopo la sua uscita.

           Per difendersi da questo tipo di attacco, il metodo più semplice è quello di far rigenerare
           spesso l’id di sessione, in modo da rendere inefficaci questi tipi di attacchi, grazie all’appo-
           sita funzione session_regenerate_id:


                                            session_regenerate_id();

           In genere va fatto dopo aver dato il via alla sessione con session_start.

           Le espressioni regolari: sono dei particolari costrutti che si usano per verificare se all’interno

           di una stringa è presente una determinata sottostringa.

           Vengono, di solito, utilizzate per verificare la correttezza dei dati inseriti dall’utente.

           Si utilizzano attraverso i “Metacaratteri”, ovvero dei caratteri speciali inseriti all’interno di

           una espressione regolare, dotati di un significato ben preciso.

                                   [] (parentesi quadre) Contengono una sequenza di caratteri
                                   () (parentesi tonde) Contengono una precisa sottostringa
                                   . (punto) Qualsiasi carattere
                                   ^ (accento
                                   circonflesso)
                                   Inizio di stringa o negazione
                                   $ (dollaro) Fine della stringa
                                   | (pipe) Operatore disgiuntivo OR
                                   \ (backslash) Carattere di escape

           Esistono  poi  i  quantificatori,  che  indicano  quante  volte  bisogna  cercare  un’occorrenza
           all’interno della nostra stringa principale:

                                                           1294
   1293   1294   1295   1296   1297   1298   1299   1300   1301   1302   1303