L'SQL injection è una vulnerabilità in cui un input non attendibile viene inserito in una query del database senza una corretta validazione o parametrizzazione. Anziché richiedere al database i dati previsti, l'applicazione può essere indotta a eseguire una query modificata che rivela record, modifica valori o aggira i controlli di accesso.
La SQLi è importante perché spesso colpisce funzioni essenziali come login, ricerca e consultazioni amministrative, e può portare al furto di dati, manomissioni o talvolta a una compromissione più profonda se combinata con altri bug. Negli attacchi reali, si verifica quando un'applicazione costruisce stringhe SQL direttamente a partire dai parametri della richiesta. I difensori riducono il rischio usando istruzioni preparate, una gestione rigorosa dell'input, account del database con privilegi minimi e revisioni del codice concentrate sulla costruzione delle query. In prodotti come WordPress, una SQLi nella gestione delle query può diventare particolarmente pericolosa se è raggiungibile senza autenticazione e può essere concatenata con altre debolezze.


