Ir para conteúdo

POWERED BY:

Arquivado

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

ehs171

Bloquear Login após tres tentativas

Recommended Posts

Bom dia pessoal, seguinte tava querendo fazer um bloqueio de login por 30 minutos após a pesso erra tres vezes a senha mas nao sei como fazer...

penssei em fazer por session ou com uma tabela no banco de dados... na minha tabela de login eu tenho um campo q grava a data e o ip do ultimo acesso...

este bloqueio eu faço pelo login pou pelo ip?

 

tabela de usuarios

create table `usuario`(
`cd_pessoa` int not null,
`login` varchar(20) not null unique,
`senha` varchar(20) not null,
`nivel` char(1) not null,
`status` char(1) not null,
constraint `fk_usuario_pessoa` foreign key (`cd_pessoa`) references pessoa(`cd_pessoa`),
constraint `pk_usuario` primary key (`cd_pessoa`)
) engine = innodb;

alguma dica?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o bloqueio com sessões, por que se o usuário estiver em algum lugar que tenha ip fixo ai ela nunca mais vai poder usar, por exemplo numa intranet. xD

 

Com cookies nem adianta porque se o usuário estiver usando o firefox, com um simples atalho -> Ctrl + Shift + Delete, ja da pra exclui tudo os cookies (em qualquer outro navegador é façil excluir também).

 

O esquema seria o seguinte, a cada tentativa de entrar no sistema se o usuário não existir seria incrementado em uma variável de sessão, quando essa variável tiver o valor 3 ou mais apareceria uma mensagem falando que o computador foi bloquado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom, tem uma parte extranet e outra intranet...tenho as duas....e os dois fazen acesso com login e senha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Smr, entao voce diz o seguinte:

quando a pessoa tentar logar e nao for sucedido eu crio uma varialver de seção com o ip dela e o numero de tentativa...

ai tipo a proximo q ele tenta loga eu procuro a sessao pelo ip e vejo se tentativa>3 e a data atual for hoje eu inativo o usuario??

seria isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode criar uma tabela retries e uma de liberação (talvez realeaseAt?), nas condições de login, no else de falha (normalmente), você incrementa a tabela retries e, a chamada releaseAt, atualiza com a hora atual acrescida de 30 minutos (1800 segundos).

 

Agora, antes dessa etapa (porém já com as tabelas) você consulta a tabela retries. Se tiver diferente de zero (já errou alguma vez), consulta a tabela de liberação e verifica se o valor presente é maior que o tempo corrente, também em segundos.

 

Assim, não precisa depender de sessões ou cookies. É bem seguro.

 

P.S.: Não liga que a cronologia da resposta esteja invertida.O frio tá congelando os neurônios aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Imaggens, deixa eu ver se entendi: voce fala de eu fazer uam tabela:

retries(cd_retrie, cd_login, ip) e outra: realeaseAt(cd_realeaseAt, cd_hora, cd_retries, cd_login)

 

ai quando eu fizer o login eu consulto a tabela de retries, se ele o ip e o login contiver nela eu verifico a tabela de realease e vejo se a hora e maior q a hora atual, se for eu bloqueio o login, se nao libero o acesso...certo??

 

e quando o usuario errar o login, eueu gravo um registro na tabela de retries, e outro na tabela de realeaseat com a hora acrescida de 30 minutos...isso?

 

desculpe a ignorancia..

:unsure:

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.