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

già  la  incrementiamo.  Terminato  il  blocco  if  stampiamo  la
                nostra variabile.


                Salvate  il  file  chiamandolo,  per  esempio,  “fixation.php”  e

                inseritelo  in  una  cartella  “prova”  all'interno  della  cartella
                “www”  di  Wamp.  A  questo  punto  aprite  il  vostro  browser
                preferito  (per  esempio  Firefox),  eliminate  tutti  i  cookie  di

                localhost           e       collegatevi            a       questo           indirizzo:
                http://localhost/prova/fixation.php?PHPSESSID=12345.

                Aggiornate  la  pagina  un  qualsiasi  numero  di  volte,  arriviamo
                per esempio a 9.


                A  questo  punto  chiudete  pure  il  browser.  Riaprite  un  altro
                browser (esempio, Chrome), magari anche su un altro computer

                se fate la prova su un server remoto, e provate a collegarvi allo
                stesso indirizzo: come potrete notare il conto non ripartirà da 0

                ma partirà da dove siete rimasti prima (nel nostro caso vedremo
                “10”).  Cosa  significa  questo?  Abbiamo  simulato  un  ipotetico

                utente A che utilizza Firefox, apre la pagina con il link che gli è
                stato suggerito dal malintenzionato utente B e dà inizio a una
                sessione.  L'utente  B  aprirà  poi  il  suo  Chrome  con  l'id  di

                sessione  da  lui  stesso  creato  e  potrà  accedere  ai  dati
                dell'utente  A.  In  questo  caso  si  tratta  semplicemente  del

                numero di volte che ha aggiornato la pagina, ma questo tipo di
                attacco  funziona  tranquillamente  anche  su  script  molto  più

                complessi  (per  esempio  un  login  a  un  sito  web:  il
                malintenzionato  B  potrà  accedere  indisturbato  a  tutti  i  dati

                personali  dell'utente  A)  che  però  hanno  seri  problemi  di
                sicurezza.


                Come  difendersi  da  questo  attacco?  Il  metodo  più  semplice  è
                rigenerare  spesso  l'id  di  sessione,  in  modo  da  rendere

                inefficaci  gli  attacchi:  questo  si  può  fare  agevolmente  tramite
                l'apposita  funzione  session_regenerate_id,  che  si  applica  in

                modo molto semplice:



                                                          190
   185   186   187   188   189   190   191   192   193   194   195