Ir ao conteúdo

Definição teórica


Bergamaschi.

Posts recomendados

Postado

Boa noite.

Hoje não quero ajuda com códigos, mas uma ajuda na teoria em algumas coisas.

Primeira coisa, sobre um sistema que eu tenho de bloqueio. Eu uso através de cookies, assim que a pessoa faz um comentário, seta o cookie por X segundos e ela não pode comentar até ele acabar. Acabando, ela pode voltar a comentar. Caso a pessoa desabilite os cookies, ela não poderá comentar.

É eficiente? Pois perguntei no Stackoverflow e eles falaram que é um sistema bem fácil de burlar e bem ineficaz.

Segundo, ao comentar, antes de bloquear (setar o cookie) se você dar submit e clicar tipo várias vezes (bem rápido) você acaba submetendo o form e comentando 2,3 (as vezes 4x) o mesmo comentário.

Seria melhor fazer um sistema de bloqueio via IP (server-side)? Se sim, como faria a contagem dos segundos?

Terceiro, gostaria de saber tecnicamente como funciona um sistema de login? como é feito a autenticação para ter certeza que o usuário "Teste1000" que está logado? E por exemplo, num post: "Usuario: Teste | Mensagem: Oi, tudo bem?", daonde vem o nome do usuário (Teste)?

Estou usando via cookies, por exemplo, na autenticação do login, se encontrado o user e a senha bateu, coloca o nome do usuario em um cookie, e na hora de fazer um post, coloco o valor daquele cookie. Porém, acho que deva ser fácil alterar o valor de um cookie, daí ela poderia estar alterando para qualquer outro valor, e comentando como se fosse outro usuário.

Resumindo, como é que funciona um sistema de login, e sei que aquele usuário que está comentando?

Caso não tenha compreendido alguma coisa, por favor, deixe-me saber.

Agradeço desde já.

  • Moderador
Postado

Terceiro, gostaria de saber tecnicamente como funciona um sistema de login? como é feito a autenticação para ter certeza que o usuário "Teste1000" que está logado? E por exemplo, num post: "Usuario: Teste | Mensagem: Oi, tudo bem?", daonde vem o nome do usuário (Teste)?

Estou usando via cookies, por exemplo, na autenticação do login, se encontrado o user e a senha bateu, coloca o nome do usuario em um cookie, e na hora de fazer um post, coloco o valor daquele cookie. Porém, acho que deva ser fácil alterar o valor de um cookie, daí ela poderia estar alterando para qualquer outro valor, e comentando como se fosse outro usuário.

Resumindo, como é que funciona um sistema de login, e sei que aquele usuário que está comentando?

O uso de cookies para autenticações eu acho um pouco ruim. É preferível que uses sessions e um banco de dados.

Basicamente funciona desta forma:

Quando o usuário se registra ela informa o nome dela, email e senha( normalmente), estas informações são armazenadas na tabela.

Na hora de logar, o usuário informa o login e senha, então o script php recebe os dados digitados e faz uma query na tabela. a partir disso, você cria um teste:

Se o número de registros for igual a zero, apresenta a mensagem de erro no login.. pois ele pode ter informado o login ou a senha errada, Senão:

  • cria uma variável para receber o mysql_fetch_array,
  • uma variável para receber o id do usuário
  • uma variável de sessão e atribuir a variável que contém o ID
  • uma variável de sessão para receber o login do usuário( no caso pode ser nome, email ou o que ele usar para logar)

exemplo:


$linha = mysql_fetch_array($dados);
$coduser = $linha["codigo"];
$_SESSION["codusuario"] = $coduser;
$_SESSION["login"] = $login;

Postado
O uso de cookies para autenticações eu acho um pouco ruim. É preferível que uses sessions e um banco de dados.

Basicamente funciona desta forma:

Quando o usuário se registra ela informa o nome dela, email e senha( normalmente), estas informações são armazenadas na tabela.

Na hora de logar, o usuário informa o login e senha, então o script php recebe os dados digitados e faz uma query na tabela. a partir disso, você cria um teste:

Se o número de registros for igual a zero, apresenta a mensagem de erro no login.. pois ele pode ter informado o login ou a senha errada, Senão:

  • cria uma variável para receber o mysql_fetch_array,
  • uma variável para receber o id do usuário
  • uma variável de sessão e atribuir a variável que contém o ID
  • uma variável de sessão para receber o login do usuário( no caso pode ser nome, email ou o que ele usar para logar)

exemplo:


$linha = mysql_fetch_array($dados);
$coduser = $linha["codigo"];
$_SESSION["codusuario"] = $coduser;
$_SESSION["login"] = $login;

Entendido. No caso, quando o usuário faz o login, eu já estava guardando numa session (tava pensando em passar pra cookie, mas nem vou mais). O valor da session é o nick do usuário (que também é o Login). No caso do cookie, ele iria servir apenas para manter o usuário logado, para não precisar autenticar no futuro (mesmo fechando o browser)? Tem ideia de como poderia ser aplicado?

Como se fosse no fórum, ex: [x] Lembra-me / Lembrar-me por um dia.

E outra dúvida, quando um usuário faz um post, eu coloco a session (com o valor do nick do usuário, a mesma usada na autenticação) para alertar que aquele usuário fez o post. Ex:

Usuário: MeuNome // (O nome dele foi guardado no banco de dados, através da session atribuida ao nome dele)

Post: Etcetcetcetcetcetc. // Qualquer mensagem.

Já está feito há um tempo assim, e funciona direitinho, só queria saber se é assim que os sites fazem, pois não faço a menor ideia se é seguro ou não.

Obrigado.

Arquivado

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

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...