Simone Baldassin
Contattami

PDO, la sql injection e PHP Symfony

PDO, la sql injection e PHP Symfony

Se ne parla da parecchio, nel web si trovano notizie su questo argomento già dal 2005, ma i tempi sembrano oramai maturi per iniziare le fasi per il passaggio: mysql_connect e le query di varia natura e genere con cui andiamo a gestire connessioni e interrogazioni ai database Mysql sono state deprecate. Dalla versione 5.1 in PHP è stato implementato PDO (PHP DATABASE OBJECT) un metodo veloce e a quanto pare molto più sicuro per gestire i nostri DB.

Ma cosa è PDO? In parole povere è una classe ad oggetti, parliamo di php5 quindi doverosamente di OOP (programmazione orientata agli oggetti), che permette la gestione in un unica interfaccia di diverse tipologie di database come mysql, sqlite, oracle, Postgresql, sqlserver ecc.. possibilità questa che è sempre mancata in php.

Ma soffermiamoci sul tema della sicurezza che nel nostro caso viene minato dalla sql injections, ovvero una serie di tecniche che sfruttano i canali di inserimento dei dati, per esempio i form o le query inviate senza il dovuto rewrite url degli indirizzi delle pagine che creiamo dinamicamente. Risulta molto più semplice di quanto si pensi poter avere accesso a montagne di dati comprensivi di username e password utilizzando questa tecnica se non ci siamo protetti in maniera adeguata.

Esistono parecchi trucchetti di sintassi e di mestiere per evitare che questa tecnica possa permettere a dati fasulli destinati a tutto tranne un semplice insert di arrivare al database, molti di questi vengono insegnati ai nostri nuovi corsi di programmazione.

Una libreria funzionale per proteggere i nostri database dalla sql injection è PDO_MYSQL che integra la protezione alle tecniche di sql injection più diffuse oltre a migliorare le performances e, come già detto sopra, poter gestire la migrazione a DB di altra tipologia senza problemi.

Indipendentemente dalla libreria in questione rimangono valide tutte le opzioni per la protezione dei dati di accesso come distribuirli in differenti files e gestire le sessioni in maniera adeguata e sicura nel momento di un autenticazione da parte di un utente registrato.

Torneremo su questo argomento in futuri blog, per il momento vi rimando alla guida ufficiale di PDO del sito php.net. Per quanto riguarda invece la programmazione a oggetti possiamo imparare a utilizzare Symfony, uno strumento open source per creare applicazioni web potenti in maniera piuttosto rapida utilizzando dei framework in php. Il sito di riferimento ufficiale è Symfony.com.

Anche su questo torneremo a parlare prossimamente. Come il mondo del web anche quello della programmazione è in continua evoluzione, rimanere continuamente aggiornati è fondamentale e soprattutto per questo la formazione è uno step obbligato a cui tutti gli addetti ai lavori dovrebbero sottoporsi periodicamente cosa che, ovviamente, in Italia non è cosi ovvia.

A buon rendere.

Simone Baldassin
25 Aprile 2014

Simone Baldassin

Sono Full Stack Developer di professione e YouTuber per diletto, specializzato nello sviluppo di temi custom per WordPress e digital marketing. Oltre a realizzare siti web, dal 2010 tengo corsi di Web Design, in aula e in streaming, presso Veneto Formazione.

Theme developer

Vuoi creare il tuo sito WordPress?

Contattami per una consulenza gratuita, valuteremo la creazione del tuo nuovo sito o il restyling del tuo sito esistente.

Preventivo gratuito

Segui il mio canale YouTube

Ogni settimana nuovi video per scoprire i migliori strumenti di sviluppo con tutorial semplici e immediati.

Vai al canale

Informativa
Questo sito utilizza cookie tecnici e di terze parti per ottimizzare la navigazione e i servizi offerti, cliccando il pulsante accetta acconsenti all’utilizzo dei cookie. Per informazioni sui cookie utilizzati in questo sito visita la nostra pagina .