Sql Injection
L'SQL Injection è una tecnica che sfrutta l'inefficenza o la mancanza dei controlli sull'input in query SQL.Un esempio può essere il login di un sito. Quando inseriamo il nick e la password, viene inviata al un database una query, in cui vengono cercate le stringhe del nick e della password, se sono presenti entrambe il login è riuscito.posted by Viralex | 20-Sep-2007 13:41
Quando tentiamo di loggarci la query è simile a questa:
SELECT utente FROM tabellautenti WHERE user = ‘username’ and pass = ‘password’
Il comando SELECT serve a far visualizzare i dati indicati dal comando, FROM indica la tabella da cui vogliamo prendere i dati, mentre WHERE fa visualizzare i dati solo nel caso che questi corrispondano a quelli segnalati, in questo caso quando il valore di user è uguale a username e lo stesso per pass.
Per chi sa un pochino di mysql è una cosa semplicissima.
L'SQL Injection consiste nell’ inserire una parte di codice mysql nei campi di input(GET o POST) ad esempio se mettiamo come password "’ or 1=1"
Vediamo cosa succede:
SELECT utente FROM tabellautenti WHERE user = ‘username’ and pass = ‘’ or 1=1’
La condizione 1=1 messa nel campo password è sempre vera perciò non verrebbe restituito alcun segnale di errore, e noi verremmo autenticati come utenti registrati del sito, senza conoscere la password di accesso. Questo è solo un esempio dei numerosi comandi che possono essere introdotti
mediante SQL Injection, anche se ora come ora il comando ’ or 1=1 e altri simili per la maggior parte dei casi, non funzionano più.
Pensate a quanto può essere pericolosa questa : "' ; drop table users--"
Per proteggersi da questa vulnerabilità l'unica soluzione è eliminare la possibilità di inserire caratteri che possono essere utilizzati nell' injection.
page 1 - 1 comments

posted by Viralex | 20-Sep-2007 13:41