L'iniezione di operatori di query è una vulnerabilità in cui l'input controllato dall'attaccante viene analizzato come parte di una query del database invece che come semplice dato. Nei database documentali e nei generatori di query simili a SQL, token e operatori speciali possono cambiare la logica di un'operazione di filtro, ordinamento o aggiornamento. Ad esempio, se un'applicazione unisce direttamente input non attendibile in un oggetto di query, un utente può essere in grado di aggiungere operatori che ampliano una ricerca, aggirano controlli o alterano i record.
Questo è importante perché può trasformare una normale richiesta in un accesso o una modifica non autorizzati ai dati. Negli attacchi reali, spesso compare nel codice di integrazione con framework, negli endpoint API o negli strumenti di amministrazione che costruiscono query dinamicamente a partire dai campi della richiesta, da JSON o dai dati di moduli. Le difese includono una rigorosa validazione dell'input, liste di elementi consentiti per nomi di campi e operatori, API di query parametrizzate o strutturate e la separazione dei dati dell'utente dalla sintassi della query. Esamina ogni livello che trasforma l'input in operazioni sul database, non solo il server del database stesso.


