Girovagando per la rete e la ricerca ho trovato un codice che dovrebbe limitare i tentativi di accesso ad una area riservata di un sito.

In teoria quando si sbagliano per tre volte (consecutive?) i dati di autenticazione l'account dovrebbe bloccarsi; dico in teoria perchè in pratica non funziona, ecco il codice:

convalida.asp
codice:

<%

FUNCTION dataShort(dtData) 
    dataShort = Year(dtData) &"/"& right("00"&month(dtData),2) &"/"& right("00"&day(dtData),2)
END FUNCTION 
 
FUNCTION filtraSQL(stringa)
	strFiltrata = Replace(stringa,"'", "´")
	strFiltrata = Replace(stringa,"%", "")
	filtraSQL = strFiltrata
END FUNCTION
 
dim strUser
	strUser=request.form("user")
dim strCode
	strCode=request.form("codice")
	strCode=cripta(strCode,key)
	strReferer = Request.Form("referer")
	 
SET objRS = Server.CreateObject("ADODB.Recordset")
objRS.ActiveConnection = cn
 
strSql = "SELECT * FROM codici WHERE userName='"&strUser&"' AND userCode='"&strCode&"'"
objRS.Open strSQL
 
IF not objRS.EOF THEN
 
  if IsNull(session("tentativi")) then
     session("tentativi") = 1
   else
     session("tentativi") = session("tentativi") + 1
   end if  
   
  Response.Cookies("innovatel.it_accesso")("valido")="ok"
  Response.cookies("innovatel.it_accesso")("nome")=objRS("utente_id")
  Session("user") = Request("user")
  Session("id_utente") = objRS("utente_id")
  strEmail = objRS("userMail")
  %>

<%
 
session.sessionID
data = dataShort(date())
tempo = time()
 
Sql = "INSERT INTO ACCESSI (UTENTE, DATA, ORA, SESSIONID, strEmail)VALUES('"&strUser&"', #"&data&"#, '"&tempo&"', "&session.sessionID&", '"&strEmail&"')"
cn.Execute(SQL)
end if
 
  ChiudiDB()
  Response.Redirect Request.Form("referer")
 
Sub ChiudiDB()
  objRS.Close
  Set objRS = Nothing
  
  cn.Close
  Set cn = Nothing
End Sub
%>
login.asp
codice:
<% 
IF Request.QueryString("referer") = "" THEN
  strReferer = Request.ServerVariables("HTTP_REFERER")
ELSE
  strReferer = Request.Querystring("referer")
END IF
 
if session("tentativi") < 3 then

 'FAI VEDERE IL FORM
 
else
 
response.write "Account bloccato"
 
end if
%>
I dati continuano ad essere richiesti anche superati i tre tentativi...