La SQL injection di secondo ordine è una forma ritardata di SQL injection. Un attaccante memorizza prima un input costruito ad arte in un database, in un file o in un archivio, e il payload diventa pericoloso solo in seguito, quando l'applicazione riutilizza quei dati in una nuova query SQL senza un'adeguata escaping o parametrizzazione. Questo rende la falla più difficile da individuare rispetto a una classica injection su un modulo visibile o su un parametro dell'URL.
È importante perché i flussi di lavoro considerati affidabili elaborano spesso automaticamente i dati memorizzati. Le funzionalità di backup, importazione e ripristino sono esempi comuni: contenuti che sembrano innocui in un archivio .wpress o in una riga del database possono trasformarsi in una stringa di attacco durante il ripristino. In attacchi reali, questo può esporre dati, modificare record o aiutare un attaccante a raggiungere l'esecuzione di codice remoto se la falla SQL apre una catena più ampia. I difensori riducono il rischio trattando i dati importati come non affidabili, usando query parametrizzate, validando tutti gli input di ripristino e limitando chi può avviare funzioni amministrative di recupero.


