Sarebbe sufficiente dire - come per entrambi nel tuo caso no. 1 & Astuccio. 2 è quello del problema della sanificazione degli input. Pre-liminari a quelli di sanificazione dell'input, c'è la convalida dell'input - questo potrebbe essere in bianco o in black list. L'approccio dell'elenco nero non è preferito.
Ora restringiamo la risposta, non è solo la conversione dei dati, l'analisi dei dati, la trasformazione dei dati o il semplice rendering dei dati da un'altra fonte, che è il punto qui; le altre fonti potrebbero essere la manipolazione dei dati in cui si confonde la logica del gestore dati .
Alcuni esempi potrebbero essere bypass di autenticazione di base, altri ancora potrebbero essere varianti di iniezioni LDAP. Le possibili cause di DB Injections nel tuo caso dovrebbero essere la mancanza di validazione dell'input, mancanza di sanificazione dell'input, mancanza di sequenze di escape, mancanza di query SQL concatenate da stringhe, mancanza di controllo degli accessi tramite policy che accedono a varie tabelle.
Ciò potrebbe accadere da diverse prospettive per ottenere un'escalation; Parliamo di alcuni:
- Database SQL controllati da domini interni - richiamati internamente, a causa della mancanza della configurazione della politica.
- Applicazioni web mirate esternamente a causa della mancanza di convalida dell'input in aggiunta alla sanificazione dell'input.
- Al livello del gestore del driver DB stesso, dove, da parte di un utente malintenzionato, confonde il gestore db a pensare che sia l'utente autenticato & i privilegi sono concessi.
Alcuni miti sono:
La white list sarà a prova di hacker - non sarà come lasciare che l'input fornito dall'utente finale sia elevato allo stesso livello della struttura di comando. Di conseguenza, anche se la whitelisting fa parte di un approccio di difesa approfondito alla sicurezza, non è ancora sufficiente per proteggersi dall'iniezione SQL da solo.
Stored Procedure lo renderà davvero a prova di hacker - mentre l'uso corretto delle stored procedure fornisce una protezione fantastica contro l'iniezione SQL, non c'è nulla di magico nelle stored procedure che impedisce loro dall'uso scorretto o non corretto; gli sviluppatori commettono errori di implementazione.
Convalida dell'input rigoroso, sequenze di escape e amp; Input Sanitisation sarebbe sufficiente - combinazioni di trucchi di codifica, routine di escape, omografi e caratteri Unicode e ASCII non utilizzati come mezzo per cercare di compromettere le routine di sostituzione delle stringhe semplicistiche definite dagli sviluppatori che non pensa come gli hacker falliranno, ripetutamente.
Fondamentalmente l'input dell'utente è il problema di root set & quindi il linguaggio di comando è correttamente separato dai dati o dall'input e dall'amplificatore utente; ci sarà chiaramente fare uno standard rigoroso per i database SQL per essere sicuro.