SQL injection è una forma di attacco di rete che coinvolge codice " iniettando " in un database , nel tentativo di forzare il programma di query di database per restituire un errore e dare l'iniettore alcune informazioni sia il database e le informazioni all'interno esso . Essa può essere eseguita da qualsiasi pagina Web che funge da portale per un database insicuro e non disinfetta le sue domande. Istruzioni
1
Assicurati di specificare il tipo di ingresso richiesto quando si scrive il codice di query SQL . Maggior parte degli ambienti di sviluppo consentono di specificare " stringa" , " intero " o " data" . Ad esempio, l'URL
http://mysite.com/listauthordetails.aspx?user_id=1234
è interpretato dal database come
SELEZIONA first_name , cognome FROM utenti WHERE user_id = '1234 '
Questa query può essere riscritta per
Dim ID As String = Request.QueryString ( " ID " ) per
Dim cmd come nuovo SqlCommand ( " SELEZIONARE user_id FROM utenti WHERE user_id = @ user_id " ) per
Dim param = new SqlParameter ( " user_id " , SqlDbType.VarChar ) per
valore parametro ID =
cmd . Parameters.Add ( param ) per
Questo codice impedisce ulteriori informazioni venga aggiunto alla fine della query SQL , e passa solo il risultato della richiesta user_id .
2
Utilizzare il file. htaccess per bloccare le richieste illegittime prima che siano passati al database , utilizzando il RewriteCond ( ) comando . Ad esempio, per bloccare uno script cerca di modificare una variabile di richiesta , utilizzare la linea " RewriteCond % { QUERY_STRING } _REQUEST ( =