Il primo passo per capire come si crea un attacco SQL injection è di replicare il problema . Attacchi di SQL injection si realizzano attraverso le variabili di form in una pagina HTML . Creazione del modulo permette al webmaster di simulare e testare la sicurezza del server web. Di seguito è riportato un esempio di un oggetto modulo utilizzato per creare un attacco SQL injection .
Anche se questa è una semplice forma di testo , è tutto ciò che è necessario per realizzare una iniezione SQL .
The Hacker codice
Quando le istruzioni SQL sono fatti, l'applicazione crea il codice SQL che viene inviato al database . Quando si invia una stringa al database , il codice sembra qualcosa di simile il testo qui sotto :
select * from myTable dove name = ' myVariableFromtheForm '
Il segno di spunta indica la fine del codice SQL , e questo è dove bersaglio hacker. Quando una casella di testo , come quello creato al punto 1 è usato per costruire una stringa , un hacker può entrare qualcosa di simile a quanto segue nella casella di testo :
' or 1 = 1; -
potrebbe sembrare senza senso , ma in realtà inietta codice nella base di dati che viene eseguito dal server . Quando " myVariableFromtheForm " è sostituito con il codice di cui sopra , la dichiarazione gestito dal server in realtà è simile al seguente :
select * from Tabella dove name = '' or 1 = 1 - '
il "-" è il codice commenti per SQL server , quindi l' ultimo battito di terminazione viene ignorato . La stringa è vuota e l'hacker inietta il codice " 1 = 1 " nella dichiarazione. Cosa che non fa altro che restituire tutte le righe dalla tabella per l'hacker . Questo è come una persona senza scrupoli ruba informazioni private dal server di database .
Risolvere il problema
Il modo migliore per risolvere il problema nel codice che è suscettibile di un mod SQL injection è quello di utilizzare la funzione "Sostituisci" in tutti i casi in cui il testo viene immesso dagli utenti. Per esempio, nel codice ASP , la seguente riga di codice sostituisce il segno singolo tick con due. Quando un SQL Server viene eseguito il codice con due segni di graduazione , le legge come un letterale e la stringa non è terminata
String.Replace ( "' " , "''" ) .
il codice di cui sopra sostituisce tutte le istanze di un singolo segno di spunta con due, eliminando la vulnerabilità di un attacco SQL injection .
software © www.354353.com