Actualmente estoy creando seguridad en un sitio web. Hasta ahora, tengo las siguientes reglas y me pregunto si esto parece suficiente.
-
5 intentos fallidos de inicio de sesión para un nombre de usuario en particular harán que esa cuenta se bloquee durante 1 hora
-
El número de intentos de inicio de sesión fallidos por dirección IP se almacenará en el caché del servidor. Si una dirección IP tiene 2 intentos de inicio de sesión fallidos dentro de un período de 2 minutos, se mostrará un Captcha (Google Recaptcha) que debe completarse antes de que puedan volver a intentar otro inicio de sesión.
-
El segundo y los intentos de inicio de sesión fallidos posteriores se registrarán en la base de datos (dirección IP, nombre de usuario que intenta iniciar sesión como y marca de tiempo)
-
Si una dirección IP excede los 30 intentos de inicio de sesión fallidos, la página de inicio de sesión se bloqueará para esa dirección IP durante 2 minutos (por ejemplo, a través de Response.End ()). Quiero reducir la velocidad de los ataques de fuerza bruta, pero también permitir que grandes empresas / instituciones / universidades / etc que puedan tener muchos usuarios detrás de una sola dirección IP puedan iniciar sesión aunque haya varios inicios de sesión fallidos para usuarios completamente diferentes dentro de un corto período de tiempo.
-
Las tablas de registro podrían revisarse periódicamente para imponer más prohibiciones permanentes, por ejemplo, a nivel de firewall.
¿Esto suena como una estrategia aceptable, o podría haber alguna mejora?