In quali situazioni la parametrizzazione di una query NON impedisce SQL Injection?

4

Sebbene ciò non sia terribilmente comune, so che SQL Injection è ancora possibile con una query parametrizzata, se si sta chiamando una stored procedure che utilizza un parametro per costruire ed eseguire SQL dinamico.

Sono curioso di sapere se esistono altri scenari di casi limite in cui SQL Injection è ancora possibile anche se si utilizzano query parametrizzate? SQL dinamico è l'unico problema?

    
posta Abe Miessler 19.11.2014 - 22:26
fonte

2 risposte

6

L'unico che viene immediatamente in mente è l'iniezione del secondo ordine in cui un valore come 123' or 1=1 -- è memorizzato in una tabella che viene successivamente recuperata e quindi utilizzata non filtrata in una query. Di solito richiede che il codice non parametrizzi i dati recuperati dal database, cosa non rara in quanto gli sviluppatori spesso considerano questa fonte "attendibile".

    
risposta data 19.11.2014 - 22:35
fonte
-1

L'uso di istruzioni preparate con parametri garantisce che i parametri dati siano passati in modo sicuro al DBMS come previsto. Una dichiarazione così preparata sicuramente non sarà iniettabile.

Tuttavia, quando l'istruzione preparata stessa utilizza funzionalità come stored procedure che contengono gli stessi difetti di iniezione, ovviamente sei ancora vulnerabile. Ma non è la dichiarazione preparata vulnerabile ma la procedura memorizzata (che potrebbe probabilmente utilizzare anche istruzioni preparate come attenuazione).

    
risposta data 20.11.2014 - 08:37
fonte

Leggi altre domande sui tag