di: Marco Bonzanini 22 Gennaio 2004
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.
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?
Guida SymfonyScopriamo quanto è facile programmare in PHP. Una guida al framework... |
Guida PHP e MySql praticaEsaminare e comprendere i comandi fondamentali di interazione tra... |
Guida programmazione ad oggetti con PHP 5Come creare applicazioni Web utilizzando la programmazione orientata... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso Webmaster con PHP01 Marzo 2010 a Milano |
|
|
Corso Amministratore Linux15 Febbraio 2010 a Roma |
|
|
Corso Webmaster con PHP29 Marzo 2010 a Roma |