Funcionamento do sistema de autenticação em PHP

Descrição das distintas páginas que formam o sistema de autenticação e seu funcionamento, baseado em usuário e senha.

Por Miguel Angel Alvarez - Tradução de JML


Publicado em: 09/1/08
Valorize este artigo:
Um sistema de autenticação é um módulo de segurança para nos assegurar de que o usuário que visita as páginas é quem diz ser. Obviamente, sabendo que esse usuário é conhecido, poderemos lhe dar acesso a mais aspectos da página que se fosse um usuário desconhecido. Porém suponho que, se estiver lendo este artigo, já conhecerá o que é um sistema de autenticação e o que deseja fazer é criar um para suas páginas.

Referência: Este manual requer o conhecimento básico de PHP que, no caso de não tê-lo, se pode aprender em nosso Manual de Programação em PHP.

Esquema de um sistema de autenticação

Vamos começar definindo um diagrama para realizar a autenticação de usuário numas páginas web, que nos servirá para programar logo as páginas ajustando-se ao diagrama.

diagrama de funcionamento de um sistema de autenticação

Na imagem anterior podemos ver o diagrama, que começa pela página onde se pede um usuário e senha para acessar à aplicação de acesso restringido.

Os dados de autenticação (usuário e senha escritos na página inicial) se enviam à página desenhada com linha de pontos, que se encarrega de fazer uma comprovação de tais dados do usuário. Segundo os dados de autenticação, se redireciona ao navegador à página da aplicação restringida, no caso de que não sejam corretos, ou à página onde se volta a escrever o usuário/senha, no caso de que sejam incorretos. Esta página foi desenhada com linha de pontos porque não é uma página onde o navegador para, e sim que é somente uma página de passagem que redireciona a um site ou outro dependendo dos dados que receba.

A aplicação de acesso restringido, a parte de mostrar as funcionalidades que queríamos proteger com usuário e senha, deve de realizar umas comprovações de segurança para saber se o processo de autenticação se passou com êxito ou se está tentando acessar de maneira não permitida a essa página. Esta comprovação foi desenhada como uma camada com cor verde mais escura sobre a página da aplicação. Se não se satisfaz tal comprovação (o usuário não se autenticou corretamente) se volta à página onde se deve escrever o usuário e a senha.

Este é o esquema básico, que espero que se entenda bem. Agora, vejamos algumas perguntas que o leitor poderia fazer.

Por que fazemos esta comprovação de segurança dentro da aplicação?
Poderia ser que alguém conhecesse a URL da aplicação de acesso restringido e a escrevesse diretamente sobre a barra de endereços do explorador, portanto fazemos esta comprovação para saber que realmente não se está acessando sem passar pela página que comprova se o usuário/senha é correto.

Como sabemos que certamente se passou pela página que comprova os dados de autenticação?
Esta comprovação se poderia fazer de várias maneiras. Sendo assim, depende de nosso script de autenticação e o nível de segurança que tratemos de implementar. Um exemplo simples poderia ser criar uma variável de sessão na página que comprova os dados, se é que eram corretos, e com uma camada de segurança das páginas de acesso restringido comprovaríamos se essa sessão está ou não definida.

No caso de desejar burlar a segurança, como poderia um usuário entrar na página da aplicação se não há links diretos e para passar a ela necessitamos que nos redirecione a página de comprobação do usuário/senha?
Pois de diversas maneiras, para começar, o histórico dos computadores salva as URL às que se acessou e qualquer pessoa poderia recuperar a URL de nossa aplicação com acesso restringido. Também se poderia provar diferentes URL que poderíamos imaginar como possíveis para a aplicação e esperar a acertar com o nome de arquivo em algum momento, inclusive esta tarefa poderia ser encomendada a um programa para realizar muitas mais provas. De qualquer forma, nossa segurança não pode ficar em simplesmente que os possíveis intrusos não conheçam o endereço da página.






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato