php - intentos - Cómo bloquear el inicio de sesión unos minutos después de 3 inicios de sesión fallidos
bloquear usuario despues de 3 intentos en php (3)
En mi opinión, Cookie o Session también pueden resolver su problema, pero en mi opinión, estas formas no son perfectas, especialmente si se enfoca en la seguridad. ¿Qué pasará si el usuario borra la cookie?
Posible duplicado:
Limitar los intentos de inicio de sesión de usuario en PHP
Intento poner algo de seguridad en el inicio de sesión para bloquear el acceso de los usuarios después de 3 intentos fallidos para iniciar sesión. Por ejemplo, si un usuario específico intenta iniciar sesión con el nombre de usuario o contraseña incorrectos 3 veces, debería mostrar el cuadro de diálogo o el mensaje que el usuario debe volver a intentar luego de 10 minutos (como ejemplo)
Después de 10 minutos, el usuario puede volver a iniciar sesión con el nombre de usuario y la contraseña correctos.
¿Cómo puedo hacer eso?
La forma más simple es usar SESSION para almacenar el número de inicio de sesión fallido, para cada vez que el usuario inicie sesión use un nombre de usuario o contraseña incorrectos, aumente su conteo. es así:
if(isset($_SESSION[''num_login_fail'']))
{
if($_SESSION[''num_login_fail''] == 3)
{
if(time() - $_SESSION[''last_login_time''] < 10*60*60 )
{
// alert to user wait for 10 minutes afer
return;
}
else
{
//after 10 minutes
$_SESSION[''num_login_fail''] = 0;
}
}
}
$sucess = doLogin() // your check login function
if($success)
{
$_SESSION[''num_login_fail''] = 0;
//your code here
}
else
{
$_SESSION[''num_login_fail''] ++;
$_SESSION[''last_login_time''] = time();
}
Sin embargo, el usuario puede eludirlo apagando el navegador, y luego volver a abrir, todas las sesiones del usuario serán nulas. Para obtener más información, puede almacenar num_login_fail y last_login_time en su base de datos.
Puede usar var $_SESSION
para guardar el número de intentos con el tiempo intentado. Esto funcionaría solo si el usuario todavía tiene la misma sesión (por ejemplo, no cerró el navegador). Use una cookie si quiere que persista. Use un valor db de IP si no desea que el usuario pueda evitar esto, pero esto sería un problema si es un NAT o tal. Es posible que desee bloquear una IP después de que se $_SESSION
3 intentos de $_SESSION
registrados con una var $_SESSION