Nota: Se stai leggendo questo messaggio è perchè non vedi i nostri file css, oppure perchè non hai un browser "standards-compliant browser". Leggi l'aiuto.

TechTarget Italy & 01net Network SearchCIO.it SearchNetworking.it SearchSecurity.it 01net 01netCIO 01netPMI 01netTRADE 01netNETS iTechStudio Digifocus Applicando CIO Club ProntoImprese IlSoftware
Cerca
in
L'esperto risponde
Come prevenire un attacco injection SQL verso un database Oracle?
28 Maggio 2009

Esiste un modo per impedire che il nostro database Oracle subisca un attacco di tipo injection SQL?

La risposta è semplice, ma l'implementazione richiederà un certo lavoro di squadra tra gli application designer e gli amministratori del database.

L'applicazione di front-end non deve ammettere eccezioni nell'attività di fitlro degli input. I caratteri speciali devono essere rifiutati, a meno che non vi sia una particolare ragione per cui alcuni devono essere assolutamente utilizzati. Tenere presente che caratteri come “-”, “/” e “;” sono comunemente usati per modificare le istruzioni SQL nelle applicazioni.

Devono poi essere identificati tutti i numeri all'interno dei testi in input per evitare il passaggio di valori esadecimali e di hash MD5.

Infine, dovrebbe essere eseguita un'ulteriore operazione di filtro dei testi per individuare alcuni set di operatori SQL come UNION o INTERSECT.

Sul versante database, è possibile ridurre i rischi di un attacco injection SQL attraverso l'uso delle bind variable. Anziché concatenare l'input dell'utente ad altre stringhe di input, se si passano i valori all'interno di una bind variable i codici maligni SQL non verranno eseguiti. Oltre a essere resistenti all'injection SQL, nella maggior parte dei casi le bind variable sono fondamentali per le prestazioni e la scalabilità.

Infine, limitate le funzioni, le procedure e i package delle applicazioni che l'utente ha il permesso e i privilegi di eseguire. Il principio del privilegio minimo è un concetto chiave nell'implementazione. Impedire l'accesso ai package non necessari ai processi che deve eseguire l'utente sulla vostra applicazione (UTL_FILE, UTL_SMPT, UTL_TCP, e così via) può ridurre ulteriormente il rischio e/o la gravità di un eventuale attacco.

*Senior Production Oracle Database Administrator

Il Sole 24 ORE S.p.A.

Sede Legale in Milano, Via Monte Rosa, 91 - Sede Operativa: Via Carlo Pisacane, 1 - Pero (MI)

Partita Iva - Codice Fiscale 00777910159 - Dati societari