Sicurezza in PHP – SQL injections

Cos’è un SQL injection ?

Direttamente da html.it

la SQL injection consiste nell’inserimento di query T-SQL e nella modifica di interrogazioni già esistenti nelle pagine dinamiche, così da far compiere all’applicazione un’azione del tutto imprevista.

Un altra buona definizione direttamente da wikipedia

La SQL injection è una tecnica dell’hacking mirata a colpire le applicazioni web che si appoggiano su un database di tipo SQL. Questo exploit sfrutta l’inefficienza dei controlli sui dati ricevuti in input ed inserisce codice maligno all’interno di una query SQL. Le conseguenze prodotte sono imprevedibili per il programmatore: l’Sql Injection permette al malintezionato di autenticarsi con ampi privilegi in aree protette del sito (ovviamente, anche senza essere in possesso delle credenziali d’accesso) e di visualizzare e/o alterare dati sensibili.

Soluzioni

– Non fidarsi dell’input dell’utente. Mai. Anche un utente che commette un errore , e non un malintenzionato, può provocare danni.

– Eseguire sempre l’escape dei caratteri utilizzando mysql_real_escape_string() oppure addslashes()

– Controllare la direttiva di PHP magic_quotes_gpc. Se impostata su ON non eseguire l’escape in quanto viene fatto automaticamente e procurerebbe solo un escape multiplo.

– Se stiamo ricevendo un email da un form , controlliamo che sia valida (esistono molte funzioni in giro).

– Stiamo ricevendo un dato e ci aspettiamo che sia un numero? Eseguiamo il casting (int)$_POST[‘input_utente’]

friimaind

Mi chiamo Massimiliano e sono uno sviluppatore web. Ho aperto questo blog principalmente come agenda dove tenere traccia di tutte le mie passioni :)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *