Jump to content


Photo

Forma Segura De Bloquear Login Após 3 Tentativas


  • Faça o login para participar
6 replies to this topic

#1 corvox

corvox

    That's No Easy Way Out

  • Usuários
  • 434 posts
  • Sexo:Masculino

Posted 08/12/2008, 18:02

Olá, gostaria de saber como seria uma forma segura de bloquear o login após 3x usando sessions, e se é melhor usar sessions ou cookies pra isto ? Ou nenhum dos dois.

vlw (y)

#2 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 08/12/2008, 23:09

Utiliza sessions mesmo, com cookie pode ocorrer a oportunidade do usuário mudar o valor do cookie.

Faz um $_SESSION['tentativas']

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#3 corvox

corvox

    That's No Easy Way Out

  • Usuários
  • 434 posts
  • Sexo:Masculino

Posted 09/12/2008, 10:37

Mas Savior, como faço para que especificamente este $_SESSION['tentativas'] expire em 30 segundos se a tentativa chegar ao numero = 3, pois eu ja defini um tempo de 60min para os outros sessions do site.

[]'s

Edição feita por: corvox, 09/12/2008, 10:40.


#4 boirock

boirock

    Tecnologia para todos (agora hexa campeão)

  • Usuários
  • 1559 posts
  • Sexo:Masculino
  • Localidade:Curitiba - PR
  • Interesses:PostgreSQL - PHP

Posted 09/12/2008, 12:15

grava a data/hora da primeira tentativa na session :)

#5 corvox

corvox

    That's No Easy Way Out

  • Usuários
  • 434 posts
  • Sexo:Masculino

Posted 09/12/2008, 15:33

Olha como estou fazendo:

// Iniciando Session Block 3x
	session_start();
	session_cache_expire(1);
	$cache_expire = session_cache_expire();
	$_SESSION['seg'] = ($_SESSION['seg'] + 1);
	if($_SESSION['seg']==3){echo 'Já se excederam 3 tentativas, espere $cache_expire min para o próximo login. <br />Caso não lembre a senha clique em Perdi a senha!<br /><a href="/recuperar-senha/">Perdi a senha!</a>'; exit();}

// ABAIXO AKI VEM CODE DO LOGIN

Funciona beleza, mas se ele da um REFRESH na página ele consegue continuar fazendo o login pq como o $_SESSION adiciona +1 ele fica acima de 3, eu só queria na verdade que este session durasse apenas 30segundos, tipo como se faz com um cookie ou se não tiver como em segundos fazer ele durar no min 1 minuto, como seria?

#6 Matheus Cáceres

Matheus Cáceres

    Normal

  • Usuários
  • 65 posts
  • Sexo:Não informado

Posted 09/12/2008, 21:22

poderia fazer um if assim:
if($_SESSION['seg']>=3){

}

Que eu saiba só é possivel em min mesmo um session, veja aqui no manual varias opções para usar com o ini_set http://br.php.net/ma...ni.php#ini.list

#7 fly2k

fly2k

    Super Veterano

  • Usuários
  • 2262 posts
  • Sexo:Não informado

Posted 10/12/2008, 05:59

Se você quer que ele espere realmente o tempo que você indicou vai ter que gravar o IP dele no banco de dados também, pois, se ele limpar o cache ele pode tentar de novo.
Quer aprender PHP? -> www.manjaphp.com.br
Tutoriais, código colaborativo (pastebin), curso de PHP, artigos e etc.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq