richiedi subito informazioni chiamando al numero +39 080 4837098

Evitare sql injection quando si usa PHP_SELF nei form

5 apr 2013

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.


Categoria: PHP
Autore: Francesco

Lascia un commento

Nome: (obbligatorio)


Email: (obbligatoria - non sarà pubblica)


Sito:
Commento: (obbligatorio)

Invia commento


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