PHP  »  Articoli  »  Sicurezza di Php 

Proteggersi dalla SQL Injection

di: Marco Bonzanini     22 Gennaio 2004

Introduzione

La creazione di contenuti dinamici che consentano all'utente di interagire con il nostro sito sono spesso alla base del successo o dell'insuccesso dei servizi che offriamo tramite il web. Maggiore è l'importanza dei dati che gestiamo, maggiore sarà anche il bisogno di sicurezza che ruota attorno ai dati stessi. La sicurezza di un sito web non viene garantita soltanto da un web server ben configurato, o da un tunnel SSL, ma deve essere implementata in maniera coscienziosa anche da chi sviluppa l'applicazione web, nel nostro caso il programmatore PHP. In questo articolo andremo a conoscere una delle più classiche tipologie di attacco legate al web, molto diffusa ma spessa sottovalutata, che va a colpire il cuore dell'applicazione web, ossia il database: si tratta dell'attacco di tipo SQL Injection. È importante tenere presente che questo fenomeno può interessare qualsiasi linguaggio di programmazione e qualsiasi DBMS, anche se gli esempi proposti faranno riferimento a PHP, con accenni a MySQL e PostgreSQL.

SQL Injection in teoria

Il problema è relativamente semplice da capire, ma è anche molto pericoloso: effettuando una query SQL costruita sulla base di input passati da un utente, senza eseguire un controllo preventivo sullo stesso input, tale query può essere manipolata a piacimento. L'input dell'utente nel nostro caso può esserci trasmesso in vari modi: tramite URL (query string), tramite un form HTML oppure anche tramite un cookie costruito su misura. Non tutti gli utenti utilizzano il nostro sito in modo "ortodosso", ad esempio cliccando su un link o compilando correttamente un modulo, per cui i dati che ci arrivano potrebbero non rispettare le nostre aspettative.

Che tipo di problemi può portare una query manipolata arbitrariamente da un utente?

  • manipolazione indesiderata dei nostri dati
  • accesso indesiderato ad aree riservate
  • visualizzazione di dati privati

Guide PHP

Guida Symfony

Scopriamo quanto è facile programmare in PHP. Una guida al framework...

Guida PHP e MySql pratica

Esaminare e comprendere i comandi fondamentali di interazione tra...

Guida programmazione ad oggetti con PHP 5

Come creare applicazioni Web utilizzando la programmazione orientata...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso Webmaster con PHP

01 Marzo 2010 a Milano
Disponibilità: 8 Posti

Corso Amministratore Linux

15 Febbraio 2010 a Roma
Disponibilità: 7 Posti

Corso Webmaster con PHP

29 Marzo 2010 a Roma
Disponibilità: 7 Posti