
Originariamente inviata da
optime
basta cercare "sql injection" su google per trovare un florilegio di informazioni

io ho cercato su google, ma tutto ste informazioni non le ho mica trovate. Più che altro in inglese, ma sono vecchie, anche di 4-5 anni. Di recente non ho trovato nulla. Ho trovato solo quest'altra funzione che potrebbe essere interessante, ma che sembra non funzionare o, sono io che non l'ho richiamata correttamente:
codice:
'IllegalChars funzione di guardia contro SQL injection
Function IllegalChars(sInput)
'Dichiara le variabili
Dim iCounter, SBadChars
'Set IllegalChars a False
IllegalChars = False
'Crea un array di caratteri illegali e parole
sBadChars = array ("select", "drop", ",", "-", "isert", "delete", "xp_", "_", "#", "%", "&", "'", "(", ")", "/", "\", ":", ",", "<", ">", "= "," [","] "," "," `", "|?", "__ ")
'Loop attraverso sBadChars array utilizzando il nostro contatore e funzione UBound
For iCounter = 0 to UBound (sBadChars)
'Usare funzione InStr per verificare la presenza di carattere illegale nella nostra variabile
If Instr (sInput, sBadChars (iCounter))> 0 Then
IllegalChars = True
End If
Next
End Function
che poi richiamo ad inizio pagina in questo modo:
codice:
blnIsIllegalCode = IllegalChars (Request.QueryString)
If (blnIsIllegalCode) Then
Response.Write ("Bad Request")
Response.End ()
End If
Anzi, cosa ne pensate? E' valida e soprattutto, l'ho richiamata nel modo giusto e al punto giusto?
Tornando poi alla tua considerazione precedente, io la validazione la faccio così:
codice:
DL_rsUser.Source = DL_rsUser.Source & " FROM geryko.utenti WHERE uname='" & ProteggiSQLI(DL_valUtente) &"' AND parolachiave='" & ProteggiSQLI(Request.Form("pwd")) & "'"
Anche perchè la user la leggo prima:
codice:
DL_valUtente=ProteggiSQLI(CStr(Request.Form("utente")))
In questo caso com'e? SI è meno esposti?