Salve a tutti
un cliente mi ha fatto notare che inserendo questa sequenza
'or''='
come password di un area riservata si riesce ad accedere nonostante non ci sia nessun utente con questa passw.
Si logga e recupera i dati del primo id_utente nel db.
Se si inseriscono dati non corretti il controllo funziona perfettamente, solo con questa sequenza ho questo bug.
di seguito il codice della pagina in questione:
Qualche consiglio?Codice PHP:'se Action ha come valore "enter"...
elseif Action = "enter" then
'creo la variabile User e passw con il valore del campo u del form
Dim User, pass
User = request.form("NAME")
Pass = request.form("PASSWORD")
'Dim Pass
'Se User e/o Pass è vuota stampo un errore
'if (User = "" or Pass = "") then
'response.write "Form incompleto!"
'response.end
'in caso contrario procedo alla verifica
'else
'Apro la connessione al DB
'imposto il redirect fallito
LoginFailed="default.asp?reason=Accesso%20negato&login_tipe=1"
Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="&_
Server.MapPath("/mdb-database/database10.mdb")
'Imposto la query ed apro il recordset
Dim Query, Rs
Query = "select * from USERSRICARICHE where USE_NAME = '" & User & "' and USE_PASSWORD = '" & Pass & "' and USE_ACTIVE = 1"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.Open Query, Conn, 3, 3
'se nessun utente corrisponde stampo un errore
if Rs.EOF then
response.redirect LoginFailed
'response.write "Spiacente! Login non corretto"
'response.end
'in caso contrario imposto la mia session ed effettuo il redirect sulla prima pagina
else
Session("User") = User
Session("Pass") = Pass
session("USE_ID") = rs("USE_ID")
set cmdHits = Server.CreateObject("ADODB.Command")
cmdHits.ActiveConnection = MM_connIWGallery_STRING
cmdHits.CommandText = "UPDATE USERSRICARICHE SET USE_HITS = USE_HITS + 1 WHERE USE_ID = " & rs("USE_ID") & " "
cmdHits.CommandType = 1
cmdHits.CommandTimeout = 0
cmdHits.Prepared = true
cmdHits.Execute()
' username and password match - this is a valid user
' Response.Cookies("IWGalleryUserName") = MM_valUsername
Response.Cookies("USE_ID") = rs("USE_ID")
response.write (Request.Cookies("USE_ID"))
' response.end
Response.Redirect PrimaPagina
end if
'chiudo Rcordset e connessione
Rs.Close
set Rs = Nothing
Conn.Close
Set Conn= Nothing
end if
Grazie a tutti

Rispondi quotando