Per dare un esempio (un po 'banale, senza testa) di sql injection, immagina questa query da qualche parte nel codice dell'app ...
select 1 from user where name='[NAME]' and password='[PASS]'
dopo che il Ragazzo Malvagio imposta i parametri con nome sopra a sua scelta, ottieni:
select 1 from user where name='admin' --' and password='[PASS]'
using the following chosen, unsanitized values:
[NAME]=' --' and password='[PASS]'
value of [PASS] variable is unimportant
Quindi, supponendo che la query abbia lo scopo di restituire 1 per il successo e il set vuoto per utente o pass non validi, un 1 verrebbe erroneamente restituito, consentendo a questo malvagio utente di accedere come account "admin".