SQL Injection è un tipo di attacco informatico in cui un utente malintenzionato inserisce codice dannoso in un'applicazione basata sul Web per ottenere l'accesso a informazioni riservate o sensibili archiviate nel database sottostante. Si tratta di un tipo di attacco injection, in cui l'aggressore inserisce comandi SQL (Structured Query Language) dannosi nel database per ottenere l'accesso a dati riservati o sensibili. Questo tipo di attacco è particolarmente rilevante nelle applicazioni web, perché i server web sono solitamente collegati a database che contengono dati riservati o sensibili.
In un attacco SQL injection, l'aggressore manipola l'applicazione web automatizzata per ottenere l'accesso al database. Questo può essere fatto inserendo codice dannoso nel campo del modulo web o parametri URL che verranno utilizzati dall'applicazione web per interrogare il database. In caso di successo, l'aggressore può accedere al database e leggere, modificare o eliminare tutti i dati in esso contenuti.
Poiché la maggior parte delle applicazioni Web sono connesse a database, l'SQL injection rappresenta una seria minaccia alla sicurezza. Pertanto, è importante adottare precauzioni adeguate per prevenire tali attacchi. Alcune misure che possono essere adottate includono la convalida dell'input (che garantisce che solo i dati validi vengano inviati al server Web) e le query parametrizzate (che garantiscono che i dati non vengano interpretati come parte del comando SQL). Inoltre, i firewall delle applicazioni Web possono essere utilizzati anche per rilevare e prevenire attacchi SQL injection.