Una query parametrizzata è un'istruzione del database che mantiene separati il codice SQL e i valori forniti dall'utente. L'applicazione invia prima la struttura della query, poi associa l'input come dati e non come testo da eseguire. Questo impedisce che i caratteri speciali nell'input dell'utente possano modificare il significato della query.
È importante perché l'SQL injection di solito riesce quando un attaccante può uscire da una stringa e alterare il comando del database. Le query parametrizzate bloccano questa classe di bug alla radice, rendendole una delle difese più solide per i moduli di accesso, i campi di ricerca e qualsiasi funzione che interagisca con un database. Nei sistemi reali, i difensori le preferiscono rispetto all'escaping improvvisato, che spesso è fragile e facile da aggirare. Sono particolarmente importanti nei percorsi pre-autenticazione, dove input non attendibili raggiungono la logica lato server prima che un utente abbia effettuato l'accesso.


