Nesta aula, iremos implementar duas funcionalidades essenciais para a segurança do sistema:
Proteção de Páginas Restritas: Garantir que apenas usuários autenticados possam acessar áreas restritas, como o dashboard e demais views protegidas.
Implementação do Logout: Criar uma maneira segura para o usuário encerrar sua sessão, limpando os dados de login e redirecionando-o para a página de login.
1. Proteção de Páginas Restritas
Para proteger as páginas que devem ser acessadas apenas por usuários logados, você deve verificar a existência de uma sessão autenticada em cada uma delas. Geralmente, isso é feito com um snippet de código que inicia a sessão e verifica se uma variável (por exemplo, $_SESSION['usuario_id']) foi definida.
Exemplo de Código de Proteção
Você pode incluir esse código no início de cada página restrita (como dashboard.php, produto_cadastro.php, produto_listagem.php, etc.) ou criar um arquivo separado (por exemplo, protege.php) e incluí-lo onde for necessário.
Exemplo direto na página dashboard.php:
Usando um arquivo de proteção (protege.php):
Crie um arquivo chamado protege.php na pasta Controllers (ou em outra pasta comum) com o seguinte conteúdo:
Depois, inclua-o no início das páginas restritas:
Essa abordagem evita repetição e garante que qualquer alteração na lógica de proteção seja feita em um único arquivo.
2. Implementação do Logout
O logout é responsável por encerrar a sessão do usuário, destruir as variáveis de sessão e redirecionar o usuário para uma página pública, normalmente a página de login. Vamos criar um arquivo chamado logoutController.php na pasta Controllers para tratar esse processo.
Código do Logout
Crie o arquivo logoutController.php na pasta Controllers com o seguinte conteúdo:
Explicação do Código de Logout
session_start(): Inicia a sessão para poder acessar os dados armazenados.
$_SESSION = array(); Limpa todas as variáveis de sessão.
Destruição do Cookie de Sessão: Se o PHP estiver configurado para usar cookies para a sessão, o cookie é invalidado definindo um tempo de expiração no passado.
session_destroy(): Destrói a sessão do servidor.
Redirecionamento: O usuário é levado para a página de login, garantindo que o acesso às áreas protegidas não seja mais possível.
3. Conclusão
Nesta aula, implementamos:
Proteção de Páginas Restritas:
Adicionamos verificações de sessão em páginas protegidas para garantir que apenas usuários autenticados possam acessá-las. Você pode centralizar essa lógica em um arquivo único (por exemplo,protege.php) para facilitar a manutenção.Implementação do Logout:
Criamos ologoutController.phppara destruir a sessão do usuário de forma segura e redirecioná-lo para a página de login.
Essas medidas são fundamentais para a segurança do seu sistema, assegurando que dados sensíveis e áreas restritas permaneçam protegidos e que os usuários possam encerrar suas sessões de maneira segura.
