Ciao a tutti,
ho da poco subito un attacco sul mio sito con la tecnica dell'SQL injection, cosa dalla quale pensavo di essermi tutelato avendo adottato quelle che credevo essere le basilari norme di sicurezza, e così mi stanno venendo mille dubbi su come imposto le mie procedure di interrogazione al DB.
Vi posto il seguente esempio, che è il nocciolo della funzione per la verifica del login utente, e vi chiedo se è parametrizzata "a dovere", cioè se effettivamente possa così strutturata essere blindata dagli attacchi.
Naturalmente rimango aperto ad ogni consiglio e/o link utile per studiare meglio l'argomento.
Grazie mille.
codice:Try cmd_Legge.Connection = cn cn.Open() ' SQL_Legge &= "SELECT *" SQL_Legge &= "FROM tbUtenti " SQL_Legge &= "WHERE " SQL_Legge &= "NomeUtente = @NomeUtente " SQL_Legge &= "AND " SQL_Legge &= "PasswordUtente = @PasswordUtente" ' cmd_Legge.Parameters.AddWithValue("@NomeUtente", SqlDbType.NVarChar).Value = NomeUtente cmd_Legge.Parameters.AddWithValue("@PasswordUtente", SqlDbType.NVarChar).Value = PasswordUtente ' cmd_Legge.CommandText = SQL_Legge dr_Legge = cmd_Legge.ExecuteReader If dr_Legge.Read Then IDUtente = dr_Legge.Item("IDUtente") Return True Else Return False End If ' If Not (dr_Legge Is Nothing) Then dr_Legge.Close() Catch ex As Exception ' Visualizza Messaggio di Errore ' MessageBox.Show(ex.Message) Finally ' Chiude la connessione se aperta ' If Not (cn Is Nothing) Then cn.Close() End Try

Rispondi quotando
sinceramente non ho capito cosa vuoi dire,