Fórum ERRO CAKEPHP record not found in table #616612
31/08/2021
0
Fala pessoal...
Estou tentando barrar o login de usuário caso ele tente n vezes a senha pra evitar ataques de força bruta.
Existe um campo no DB que se chama attemp e incrementa toda vezes que o usuário digita a senha errada e se esse valor for maior que 3x ele só consegue acessar novamente trocando a senha. Caso o usuário acesse esse valor passa pra null novamente.
Estou conseguindo acessar o sistema normalmente quando o login e senha está correto, porém está sendo apresentado esta mensagem quando a senha é digitada ERRADA.
Se precisar de mais alguma informação eu passo abaixo.
Abraço
Estou tentando barrar o login de usuário caso ele tente n vezes a senha pra evitar ataques de força bruta.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | $user = $this ->Auth->identify(); $userLoad = $this ->Users->get( $user [ '' '' '' '' id '' '' '' '' ]); if ( $user [ '' '' '' '' attempt '' '' '' '' ] < 3){ if ( $user ) { //Reseta a variável attempt $userLoad ->attempt = NULL; $this ->Users->save( $userLoad ); $this ->Auth->setUser( $user ); #definir o contexto #verificar se possui mais de um contexto e selecionar algum $this ->getRequest()->getSession()->write( '' '' '' '' User.context '' '' '' '' , $user [ '' '' '' '' roles '' '' '' '' ][0][ '' '' '' '' type '' '' '' '' ]); return $this ->redirect( $this ->Auth->redirectUrl()); } else { $this ->Flash->error(__( '' '' '' '' Usuário ou senha incorreta. '' '' '' '' )); //Incrementa na variável para bloquear o usuário $userLoad ->attemp++; $this ->Users->save( $userLoad ); } } else { $this ->Flash->error(__( '' '' '' '' Usuário bloqueado! Altere sua senha para ter acesso novamente. '' '' '' '' )); } |
Existe um campo no DB que se chama attemp e incrementa toda vezes que o usuário digita a senha errada e se esse valor for maior que 3x ele só consegue acessar novamente trocando a senha. Caso o usuário acesse esse valor passa pra null novamente.
Estou conseguindo acessar o sistema normalmente quando o login e senha está correto, porém está sendo apresentado esta mensagem quando a senha é digitada ERRADA.
Record not found in table "users" with primary key [NULL]
Se precisar de mais alguma informação eu passo abaixo.
Abraço

Yuri Aguiar
Curtir tópico
+ 0
Responder
Posts
31/08/2021
Yuri Aguiar
Esqueci de informar que quando eu retiro a segunda linha do código tudo funcionar normalmente.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)