Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sander Luís

Login c/ limite de tentativas

Recommended Posts

O filtro é fácil, mas como você quer bloquear a entrada do usuário?

 

Por exemplo, quer que se o usuário tentar acessar 3 vezes o mesmo login, a tentativa de logar para este login seja bloqueada?

 

Ou quer que X tentativas de login de um mesmo IP seja bloqueada?

 

De qualquer forma, você pode fazer isso por $_SESSION e JavaScript ou utilizando um banco de dados.

 

Com $_SESSION:

A cada tentativa, é registrada uma informação na sessão. Quando essa sessão atingir o valor 5, você retorna o erro.

 

Para limpar a sessão, faça com que depois de X tempo sem tentar logar, esta volte ao seu estado normal (0, por exemplo).

 

Com Banco:

Crie uma tabela para as tentativas. A cada tentativa, a informação é registrada lá. Quando atingir o número de tentativas em questão, você retorna o erro. Depois de X tempos, você limpa o registro e o cara pode tentar logar novamente.

 

A lógica é basicamente essa. Se ainda tiver alguma dificuldade técnica, pergunte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica é a seguinte:

 

Na página de login (login.php) poe uma variável na sessão

$_SESSION['tentativas'] == 0;

 

Na página de erro (erro_login.php) poe

$_SESSION['tentativas'] ++;

 

nessa mesma página poe um if:

 

if($_SESSION['tentativas'] >= 5){
echo "captcha";
}

 

espero que você tenha entendido :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

A lógica é a seguinte:

 

Na página de login (login.php) poe uma variável na sessão

$_SESSION['tentativas'] == 0;

 

Na página de erro (erro_login.php) poe

$_SESSION['tentativas'] ++;

 

nessa mesma página poe um if:

 

if($_SESSION['tentativas'] >= 5){
echo "captcha";
}

 

espero que você tenha entendido :D

 

ouuu assim é mais facil, agora como q faço aquela captcha simples q nem tem em alguns blogs wordpress q seria algo como 3+9=

 

e o mais importante é tbm fazer com q ela seja validada junto com o formulario, tipo se não for preenchida volta o alerta de erro...

 

seria algo como:

 

se tiver q preencher a captcha, o action do formulario seria: valida.php?include=captcha

 

q dae dentro da validação do formulario normal eu lia o include=captha com o get e adicinava na validação.

 

e se não precisasse da capcha o action do formulario seria a penas valida.php dae teria na validação la dentro o get include=captcha e dae como não tah escrito o get no lin não ia ler dae ia apenas pular o captcha intenderam?

 

não seria assim por segurança do sistema, seria mais contra os programas q tentam burlar a senha...

 

dae eles iam gerrar 5 senhas e ia travar o formulario pq eles não interpretariam o captcha, e para entrar o login presisará do captcha apos 5 tentativas ok??

 

entenderam ou nadinha???

 

se naum entenderam nadinha apenas me digam com q eu faço um captcha simples no php mesmo tipo uma conta matematica de + ou *

 

e tbm como q valido se a conta tah certa para proceder o login..........

 

 

vlwwwwwwwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

De qualquer forma, você pode fazer isso por $_SESSION e JavaScript ou utilizando um banco de dados.

 

Sessão não oferece segurança nenhuma para este tipo de sistema. Javascript muito menos.

 

Primeiro, pra que serve mesmo este tipo de sistema? Para impedir ataques do tipo brute-force, certo?

 

Neste tipo de ataque, um bot pode inserir diversas combinações de senhas diferentes até conseguir se autenticar no sistema. O captcha neste caso seria para se certificar que é um humano que está tentando se autenticar no sistema e não um bot.

 

As sessões do PHP utilizam cookies, como você vai se defender de um bot usando cookie (que é algo que precisa ser salvo no cliente)?

 

A melhor solução ao meu ver é armazenar as tentativas de login sem sucesso no banco de dados, daí você verifica se aquele IP já fez o número de tentativas permitidas pela aplicação, e se necessário exibe o captcha ou bloqueia o acesso.

 

 

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sessão não oferece segurança nenhuma para este tipo de sistema. Javascript muito menos.

 

Primeiro, pra que serve mesmo este tipo de sistema? Para impedir ataques do tipo brute-force, certo?

 

Neste tipo de ataque, um bot pode inserir diversas combinações de senhas diferentes até conseguir se autenticar no sistema. O captcha neste caso seria para se certificar que é um humano que está tentando se autenticar no sistema e não um bot.

 

As sessões do PHP utilizam cookies, como você vai se defender de um bot usando cookie (que é algo que precisa ser salvo no cliente)?

 

A melhor solução ao meu ver é armazenar as tentativas de login sem sucesso no banco de dados, daí você verifica se aquele IP já fez o número de tentativas permitidas pela aplicação, e se necessário exibe o captcha ou bloqueia o acesso.

 

pois é sou iniciante e to aprendendo aki..

 

to disposto pra ouvir quem sabe...

 

como faria então para ir registrando e lendo esses dados no db?

 

teria q criar duas colunas uma para o ip e outra para o numero de tentativas??

 

e tbm teria q excluir o numero de tentativas apos um certo tempo (minutos)

 

pra naum ir somando para a proxima ves ou dia q o carra fazer login e dar erro né?

 

ja pra pegar o ip pode ser assim né:

 

$ip = $_SERVER['REMOTE_ADDR'];

 

depois gravo o $ip no db, na linha q tah o login d quem colocou no formulario...

 

to aprendendo se falar m***** me corrijam!

 

kkkkkkk

 

sabe como q faz Leozitho? eu procurei aki e achei um sisteminha mas naum consegui implementar no meu login

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só na hora de fazer o SELECT você colocar a cláusula WHERE pra pegar somente os registros do tempo que você quer pegar.

 

puts.. man to aprendendo lidar com php e mysql tem como colocar o captcha? deve ser mais facil..

 

ou se tiver paciência explica melhor como q faço oq você disse.. ;)

 

vlww

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.