Attacchi informatici: sql injection, una piaga, parte II

Nel precedente articolo abbiamo parlato in generale di sql injection ed abbiamo visto come validare l’input in asp.net.
Ma abbiamo anche detto che è una piaga del tutto indipendente dalla piattaforma utilizzata.
In questo articolo vedremo con validare l’input in php.

Riprendiamo la query dell’esempio precedente scritta in php/mysql:

SELECT * FROM utenti WHERE nome LIKE '$_POST[“TextBox”] %'

Non essendoci alcuna validazione dell'input, un hacker potrebbe sfruttare questa vulnerabilità inserendo nella casella di testo la stringa: " '' or 'a' like 'a ".
L'istruzione SQL risultante sarebbe la seguente:

"SELECT * FROM utenti WHERE nome LIKE '' OR 'a' LIKE 'a%'", causando quindi la restituzione del contenuto completo della tabella utenti.

Come possiamo validare l’input?

Semplicemente utilizzando la funzione mysql_real_escape_string($stringa).
Quindi la nostra stringa sql verrebbe riscritta nel modo seguente:
"SELECT * FROM utenti WHERE nome LKE '" . mysql_real_escape_string($_POST["TextBox"])  . "%'”.

Oppure hai ancora dubbi e semplicemente vuoi approfondire l'argomento? Contattami liberamente, senza alcun impegno, per un preventivo gratuito di consulenza personalizzata.

Nella sessione studiata su misura per te sarò a tua completa disposizione fornendoti risposte chiare, immediate e precise.

Consulenze telefoniche o per posta elettronica prevedono un costo.

L'autore

Mi sono laureato in informatica presso l'università degli studi di Milano. Da sempre mi occupo di informatica e programmazione.
Da qualche anno sono diventato un blogger e collaboro con alcune testate on-line.
Ho al mio attivo anche alcune pubblicazioni on-line.
Alessio Arrigoni - CONSULENTE INFORMATICO
Via per Senna, 15 - 22070 Capiago Intimiano (CO)
Tel. 031.461.335 - POSTA: info@alessioarrigoni.it
PRIVACY | P.I. 02752540134