Ir para conteúdo
Fórum Script Brasil
  • 0

Como Controlar Login Por Cookie


kuroi

Pergunta

tenho um problema serio. se o cara loga no meu site e seleciona a opcao de logar automaticamente, eu gravo o id dele no cookie. ai quando ele acessar o site novamente eu leio o cookie e logo com o usuario que estiver gravado.

mas ai que ta o problema, eu fui na pasta Documents And Settings\Cookies, abri o cookie do meu site e alterei o cookie na mao, colocando o id de um segundo usuario. assim, quando abro o site de novo ele vai logar com o outro usuario. deste modo qualquer um pode logar com o login de qualquer um sem precisar da senha.

como fazer pra contornar isso?? talvez se eu criptografasse o login, alguma coisa assim, eu pudesse resolver, mas queria saber como isso é feito normalmente.

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Costumo fazer desta forma: uso um array contendo os dados do usuário, como ID, login e senha (codificada em MD5). Usando serialize(), transformo esse array em string, podendo salvá-lo num cookie. Para resgatar o valor do cookie, uso unserialize() e, em seguida, faço a verificação no banco de dados, certificando-me de que os usuário e senha do cookie coincidem com os salvos no banco.

Veja:

http://forum.idone.com.br/index.php?showtopic=992

Isso evita salvar um cookie para cada informação do usuário, além de manter a segurança do sistema. ;)

Abraços,

Beraldo

Link para o comentário
Compartilhar em outros sites

  • 0

Teoricamente não há como reverter uma string codificada em MD5, mas dizem as más linguas que há pessoas tentando decodificar hashes md5 com força bruta (semelhantemente ao que fizeram com a chave de registro do windows vista, talvez). Apesar disso, creio que MD5 ainda seja a maneira mais segura de armazenar as senhas.

Link para o comentário
Compartilhar em outros sites

  • 0

a valeu. um problema aqui com o unserialize:

aqui eu gravo o cookie, normalmente:

$a[0] = $ID; $a[1] = md5($Login); $a[2] = $Senha;
            $cookie = serialize($a);

            setcookie("login", $cookie, time() + 45000);[/code] aqui é onde vou ler:
[code]$a = unserialize($_COOKIE["login"]);

        echo $_COOKIE["login"] . "<br/ >";
        echo $a[0] . "<br />" . $a[1] . "<br />" . $a[2] . "<br />";
pelo que parece ele serializa normal, o echo do $_COOKIE["login"] retorna a:3:{i:0;s:1:\"1\";i:1;s:32:\"9135d8523ad3da99d8a4eb83afac13d1\";i:2;s:32:\"c4ca4238a0b923820dcc509a6f75849b\";} mas o echo do $a volta em branco pra todos os indices. o codigo html que volta vem assim:
a:3:{i:0;s:1:\"1\";i:1;s:32:\"9135d8523ad3da99d8a4eb83afac13d1\";i:2;s:32:\"c4ca4238a0b923820dcc509a6f75849b\";}<br /><br /><br /><br />
tem uma ideia do que pode ser?? EDITADO: resolvido, o problema é que ele poe as barrinhas antes das aspas. resolvi assim:
$c = str_replace("\\" . chr(34), chr(34), $_COOKIE["login"]);
$a = unserialize($c);[/code]

valeu pela ajuda.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

  • 0

Opa.. melhor do que isso: use stripslashes(). ;)

Mas só será necessário usar se magic_quotes_gpc, no php.ini, estiver ativado (essa diretiva não existirá no PHP 6), então é melhor fazer isto:

$dados = (get_magic_quotes_gpc()) ? unserialize(stripslashes($_COOKIE['dados'])) : unserialize($_COOKIE['dados']);

;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...