Live chat Whatsapp
Live chat Whatsapp
Attiva Web - Realizzazione siti internet, ecommerce

Evitare sql injection quando si usa PHP_SELF nei form

    • Spesso ci capita di dove inviare i dati di un form HTML alla stessa pagina che contiene il modulo.

      E' buona norma "sanificare" anche in maniera semplificata, come vedremo oggi, i dati ricevuti dai form o tramite chiamate GET.

      Come al solito PHP possiede già innumerevoli funzioni che ci aiutano nello sviluppo delle nostre applicazioni, e una semplice funzione che può già sensibilmente migliorare la qualità dei dati passati è htmlspecialchars.

      Questa funzione converte alcuni caratteri speciali, ad esempio:

      '&' (e commerciale) diventa '&' 
      '"' (doppio apice) diventa '"' con ENT_NOQUOTES is not set. 
      ''' (singolo apice) diventa ''' soltanto con l'impostazione di ENT_QUOTES. 
      '<' (minore) diventa '<' 
      '>' (maggiore) diventa '>

      Facciamo un esempio pratico, supponiamo di avere un modulo contenente due input, uno per il nome e uno per il cognome, al click sul nostro "invia dati", che punterà alla stessa pagina che contiene il modulo possiamo eseguire la nostra funzione:
       

      $azienda = htmlspecialchars($_POST['azienda'],ENT_QUOTES);
      
      $cognome = htmlspecialchars($_POST['cognome'], ENT_QUOTES);
      

      Di conseguenza se l'input azienda contiene il degli apici o "e commerciali (&)" queste verranno convertite automaticamente nelle loro entità HTML grazie anche al suffisso ENT_QUOTES.

      Questo ci permette di evitare sql injection, almeno le più banali, e rendere più sicure le nostre applicazioni, ovviamente la sicurezza non è mai  troppo e potremmo creare noi stessi una funzione per poter sanificare i nostri dati, in base alle nostre esigenze.

      Ci tengo a precisare che questo è soltanto un semplice esempio, la sanificazione dei dati andrebbe gestita con funzioni ad hoc.

      Francesco // 05-04-2013 // PHP

    Lascia un commento

    Invia commento


    ATTENZIONE: il tuo commento verrà prima moderato e se ritenuto idoneo sarà pubblicato