Buenas,
Estoy haciendo un sistema de login y como medida de seguridad para evitar brute force le quiero poner un captcha que salga cuando se ponga mal el login 3 o 4 veces seguidas. No estoy muy informado sobre captchas, pero se que muchos sistemas captcha que usan las webs son facilmente petables (vease megaupload XD). Hay algun captcha seguro a dia de hoy? ReCaptcha??
segun mi ?¿
vi muchos tutos de como saltar captchas... no seria mejor hacer un contador con los errores , por 5 intentos fallidos , baneas la ip por un dia :xD
nadie se va a tomar el tiempo de reiniciar para volver a probar... creeria yo :P
puede ser una idea xD
saludos
Ps puedes usar las dos formas, porque no todas las captha son iguales, para bypassear el captha con un script codeado, primeros debes conocer las letras de la captha o algo similar, pero no vale la pena mucho por que hay captha de por lo menos 7 digitos y cambian en cada intento, lo que deberias de hacer es hacer que la captha aparezca luego de 3 intentos fallidos, asi si ellos comiensan a brutear el pass, las 3 primeras peticiones seran true y las siguientes seran false, y es una mejor forma, ya que seria un poco dificir brutear el pass y la unica forma seria a mano xD, deberias inplementar baneo automatico, si una ip hase muchas peticiones en poco segundos...
Saludos.
El recaptcha es bueno, podrías usar ese.
Vale perfecto, voy a implementar el recaptcha :D
A parte del captcha tengo mas medidas de seguridad para dificultar el brute force, sacadas de http://www.owasp.org/index.php/Blocking_Brute_Force_Attacks
Por ejemplo tengo un sleep($time) en el php de validación que se ejecuta cuando no se valida bien un usuario y su tiempo depende del numero de fallos que tenga. Cuantos mas fallos mas tarda xD
Entonces si llega a 10 intentos fallidos baneo la ip durante unos minutos.
Tambien estoy pensando en implementar la deshabilitacion de la cuenta si se llegan a numeros muy altos de intentos fallidos.. pero aún no lo tengo claro, porque si un usuario malintencionado se hace con un proxy list y empieza a brutear usuarios, al final se van a quedar todos los users deshabilitados jajaj XD
El sleep no sirve de nada, si te conecto 500 sockets simultaneos no tardaré mas de $time segundos en tener los 500 resultados xD y si pones sleep simplemente me basta con hacer una nueva petición y ya.
Mejor obtienes su ip y le deniegas el acceso con un exit(); hasta pasados esos segundos que deben ser guardados en una sesión local del servidor sin usar cookies, de esa forma si alguien hace 500 peticiones simultaneas solo va a recibir 10 y el resto le va a devolver el exit.
Es cierto, incluso abriendo varias pestañas se puede pasar por alto este sleep.. Mejor lo quito porque solo sirve para que los usuarios normales vean relentizado su login.
thx WHK! ;D