Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 533394
            [titulo] => Sistema de senha, bloquear depois de n tentativas
            [dataCadastro] => DateTime Object
                (
                    [date] => 2015-10-02 18:07:06
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 418027
            [status] => A
            [isExample] => 
            [NomeUsuario] => Jothaz
            [Apelido] => 
            [Foto] => 418027_20150313165406.jpg
            [Conteudo] => 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. ) )

Sistema de senha, bloquear depois de n tentativas

PHP
Marcio Araujo
   - 02 out 2015

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?

Post mais votado

Jothaz
   - 02 out 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.

1
|
0

Marcio Araujo
   - 02 out 2015

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.

0
|
0

Jothaz
   - 02 out 2015

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

0
|
0

Marcio Araujo
   - 03 out 2015

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

0
|
0

Cleyton Caetano
   - 04 out 2015


Citação:
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....

0
|
0

Marcio Araujo
   - 04 out 2015

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

0
|
0

Cleyton Caetano
   - 04 out 2015


Citação:
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...

0
|
0

Marcio Araujo
   - 05 out 2015

Então está bem, obrigado.

0
|
0

Mauricio Padua
   - 05 out 2015

Cleyton, pode mostrar algum código por favor?

0
|
0

Cleyton Caetano
   - 05 out 2015


Citação:
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...

0
|
0

Cleyton Caetano
   - 06 out 2015

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.

#Código

//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!

0
|
0

Mauricio Padua
   - 06 out 2015

Muito obrigado Cleyton.

0
|
0

Cleyton Caetano
   - 06 out 2015


Citação:
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!

0
|
0

Mauricio Padua
   - 06 out 2015

Acho que entendi, só deixar acima mesmo?

0
|
0

Marcio Araujo
   - 06 out 2015

Obrigado Cleyton pelo código.

0
|
0

Cleyton Caetano
   - 06 out 2015


Citação:
Obrigado Cleyton pelo código.

De nada mano

Citação:
Acho que entendi, só deixar acima mesmo?

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

0
|
0

Mauricio Padua
   - 06 out 2015

Blz.!!!

#Código

<?php
session_start();

0
|
0

Cleyton Caetano
   - 06 out 2015


Citação:
Blz.!!!

#Código

<?php
session_start();

Isso aí mano, estou lançando um novo website em breve, terei vários códigos lá...

0
|
0

Mauricio Padua
   - 06 out 2015

Então divulga aí depois!

0
|
0

Marcio Araujo
   - 06 out 2015

Sai quando?

0
|
0

Cleyton Caetano
   - 06 out 2015


Citação:
Sai quando?
k
Mano não está completo mas estou só esperando liberarem minha hospedagem pra publicar...
Vou colocar no ar com algumas ferramentas funcionando e vou liberando as outras com o tempo...

0
|
0