Sistema de senha, bloquear depois de n tentativas

02/10/2015

0

PHP

Pensando nos sistemas de login e senha, se esses não tiverem um certo controle e alguem mal intencionado pode ocorrer um acesso indevido, por curiosidade e até por este assunto ser pouco abordado, tem como bloquear acesso depois n tentativas?
Marcio Araujo

Marcio Araujo

Responder

Post mais votado

02/10/2015

Não só é possível, como altamente recomendável.
Todo sistema que se preze, depois de N tentativas bloqueia a conta.
Isto evita ataques por "brute force" (força bruta).
Atualmente usa-se outras técnicas como autenticação em duas etapas, entre outros.

No caso de bloquear por N tentativas é bem simples, basta criar uma variável e ir incrementando a cada erro. Quando alcançar a quantidade (3 ou 5), bloqueia o usuário, podendo gravar um registro de log com o IP por exemplo.

Jothaz

Jothaz
Responder

Mais Posts

02/10/2015

Marcio Araujo

Foi o que pensei, em artigos e video aulas não encontrei nada sobre isso, eu meio que pensando, me lembrei tambem da "força bruta" que é uma tecnica de invasão.
Responder

02/10/2015

Jothaz

Não existe nada que você possa fazer para garantir 100% de certeza que seu site este protegido. Pois vai de regra os maiores ataques são realizado por engenharia social, alguém de dentro facilita o acesso ou senha fracas ou mal armazenada.

Agora você tem de garantir que de sua parte você pelo menos seguiu todas as boas práticas de segurança.

Segue alguns links:

10-boas-praticas-para-tornar-seus-aplicativos-mais-seguros-parte-01

10-boas-praticas-para-tornar-seus-aplicativos-mais-seguros-parte-02

10-boas-praticas-para-tornar-seus-aplicativos-mais-seguros-parte-03

10-boas-praticas-para-tornar-seus-aplicativos-mais-seguros-parte-04
Responder

03/10/2015

Marcio Araujo

Agora sim, valeu Jothaz, devemos garantir pelo menos a nossa parte.
Responder

04/10/2015

Cleyton Caetano

Não só é possível, como altamente recomendável.
Todo sistema que se preze, depois de N tentativas bloqueia a conta.
Isto evita ataques por "brute force" (força bruta).
Atualmente usa-se outras técnicas como autenticação em duas etapas, entre outros.

No caso de bloquear por N tentativas é bem simples, basta criar uma variável e ir incrementando a cada erro. Quando alcançar a quantidade (3 ou 5), bloqueia o usuário, podendo gravar um registro de log com o IP por exemplo.

Disse tudo....
Responder

04/10/2015

Marcio Araujo

Boa tarde Cleyton, aproveitar que apareceu, você cuida dessa parte no desenvolvimento, como fez, seguiu algum material, documentação?
Responder

04/10/2015

Cleyton Caetano

Boa tarde Cleyton, aproveitar que apareceu, você cuida dessa parte no desenvolvimento, como fez, seguiu algum material, documentação?

Não entendi muito a informação sobre mim kkk
Mas isso é bem simples de fazer...
Pode ser feito com uma variável incrementada, quando atingir o pico de tentativas atualiza o banco de dados, mudando o status do usuário de 1 para 0 e depois é só fazer condições na página de login para reconhecer usuários bloqueados e autorizados...
Na prática é muito mais simples do que parece...
Responder

05/10/2015

Marcio Araujo

Então está bem, obrigado.
Responder

05/10/2015

Mauricio Padua

Cleyton, pode mostrar algum código por favor?
Responder

05/10/2015

Cleyton Caetano

Cleyton, pode mostrar algum código por favor?

Mano eu até tenho o código escrito, mas o que aprendi aqui no Devmedia foi bater a cabeça e aprender, amanhã te mando uma estrutura de exemplo pra você estudar e criar a sua, meu ultra não tá aqui deixo no trabalho por isso não mando agora...
Responder

06/10/2015

Cleyton Caetano

Pronto, aqui estou eu :P

vamos a uma demonstração
para inicio cria uma coluna na tabela de usuários com o nome status valor int define 0 para se o usuário for bloqueado e 1 para usuários autorizado.

//verifica se existe tentativas de login
if(isset($_SESSION['tentativas_de_login'])){
    //Verifica a quantidades de login e se for maior ou igual a 5 executa função para bloquear usuario
    if($_SESSION['tentativas_de_login'] >= 5){

        //Chama função para bloquear usuário

    }
}

if($login){
   echo "Login efetuado com sucesso";
} else {
   //verifica se a variável tentativas de login existe e incrementa +1 numero a ela até atingir 5 e bloquear
   if(isset($_SESSION['tentativas_de_login'])){
      $_SESSION['tentativas_de_login'] += 1;
   } else{
   //Se for a primeira vez criar a sessão tentativas_de_login com o valor 1
      $_SESSION['tentativas_de_login'] = 1;
   }

echo "usuário ou senha incorretos";
}


Amigão é basicamente isso, ai vai se você implementar seu código para funcionar com o meu!
Responder

06/10/2015

Mauricio Padua

Muito obrigado Cleyton.
Responder

06/10/2015

Cleyton Caetano

Muito obrigado Cleyton.

Se lembra que esse código que verifica se existe tentativas de login para poder bloquear deve ficar antes da requisição post, deve ser dos primeiros códigos da página, antes de qualquer consulta ao MySql do usuário!
Responder

06/10/2015

Mauricio Padua

Acho que entendi, só deixar acima mesmo?
Responder

06/10/2015

Marcio Araujo

Obrigado Cleyton pelo código.
Responder

06/10/2015

Cleyton Caetano

Obrigado Cleyton pelo código.

De nada mano
Acho que entendi, só deixar acima mesmo?

Isso, lembra de iniciar a session mano, senão não vai funcionar!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar