Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Atualmente estou visando a segurança do meu site. Criei um sistema de login que após N tentativas cria um captcha e após N tentativas com o captcha bloqueia o usuário com cookie e caso ele tire o cookie, bloqueia ele pelo ip no lado do servidor, mas vi que exitem formas do usuário mascarar o ip como por exemplo com o tor browser. Se ele tem um ip dinamico eu não conseguirei bloqueá-lo pelo ip, estou certo? Eu gostaria de saber se existe uma maneira melhor de bloquear o usuário que utiliza de métodos para burlar sistemas e também vi que há um problema de bloquear pelo ip, pois você pode bloquear outros usuários que nada tem haver com o problema.
Eu bloqueio o ip no lado do servidor, o cookie que é do lado do cliente, mas o problema estava em pessoas que mascaram o ip, porém lendo o que você colocou eu tive uma ideia, na opção 1 e 2 você está falando de bloquear através do email após N tentativas do cracker, né? Porque o email ele não pode mascarar e depois de N tentativas aquele email especifico seria bloqueado e só seria desbloqueado após uma confirmação através do email do usuário . Acho que a opção 3 iria irritar o usuário, toda vez que ele entrasse iria ter que confirmar a senha e depois um email ou sms.
Ip você pode armazenar ele no seu servidor, mas o ip o usuário consegue controlar mudando ele facilmente como você disse, aí nesse caso seria ineficaz mesmo, a solução é fazer algo usando as informações que estão totalmente dentro do servidor, usando as próprias informações dos usuários, pra bloquear pra fazer verificações, disparar emails de confirmações, frases de segurança e etc. No caso de fazer verificação via email o atacante teria que ter acesso ao email do usuário, seja hotmail, gmail e etc, já é uma dificuldade a mais pra dar uma inibida no atacante.
2 fatores é complicado é meio chato mesmo dependendo da aplicação, ele é bom quando se trata de logins onde tem dados muito sensíveis dentro do painel, aí os usuários não reclamariam.
Faz um bloqueio temporário no usuário que o indivíduo ta tentando acessar, informa que ele só poderá fazer uma nova tentativa após confirmar via email. Bloquear por cookie e por ip nesses casos é bem ineficaz mesmo, nessas situações o cookie e o ip seriam mais pra ajudar na segurança em segundo plano. Tem que fazer algo no lado do servidor.
Algumas opções (opções tudo no lado do servidor):
Opção 1 : bloquear o acesso do usuário que ta sofrendo tentativa de brute force e só deixar ele relogar acessando o email dele, clicando em algum link no email e confirmando.
Opção 2 : Após N tentativas enviar um sms pro número do celular do usuário e só liberar o login desse usuário quando ele confirmar o código enviado por sms.
Opção 3: Colocar um sistema de autenticação de 2 fatores.
E você pode pensar em várias outras opções, mesclar elas e tudo mais, e pra ser eficaz vai ter que ser tudo no lado do servidor, ip e cookie use somente pra complementar a segurança.