Aula 14: Proteção de Páginas Restritas e Implementação do Logout

Por: Nerd Toolkit Postado em: Abril 16, 2025 Visto por: 182

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:

 
<?php 
// Views/dashboard.php 
session_start();
// Verifica se o usuário está autenticado 
if (!isset($_SESSION['usuario_id'])) {
   header("Location: login.php");
   exit();
}
?>
<?php 
include 'header.php';
?>
<body>
 <div class="container mt-5">
   <h2>Bem-vindo, <?php echo htmlspecialchars($_SESSION['usuario_nome']); ?>!</h2>
   <p>Esta é a área restrita do sistema.</p>
   <a href="../Controllers/logoutController.php" class="btn btn-danger">Sair</a>
 </div>
</body>
</html>

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:

 
<?php
// Controllers/protege.php
session_start();
if (!isset($_SESSION['usuario_id'])) {
   header("Location: ../Views/login.php");
   exit();
}
?>

Depois, inclua-o no início das páginas restritas:

 
<?php
include '../Controllers/protege.php';
?>
<!-- Resto do conteúdo protegido -->

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:

 
<?php
// Controllers/logoutController.php
session_start();
// Destrói todas as variáveis de sessão
$_SESSION = array();
// Se desejado, destrua também o cookie da sessão
if (ini_get("session.use_cookies")) {
   $params = session_get_cookie_params();
   setcookie(session_name(), '', time() - 42000,
       $params["path"], $params["domain"],
       $params["secure"], $params["httponly"]
   );
}
// Destrói a sessão
session_destroy();
// Redireciona o usuário para a página de login após o logout
header("Location: ../Views/login.php");
exit();
?>

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 o logoutController.php para 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.

Tags:
#páginas restritas  # logout  # proteção de sessão  # PHP OOP  # segurança  # desenvolvimento web  # MVC  # SEO 

Aula 14: Proteção de Páginas Restritas e Implementação do Logout
  Contato
  • support@nerdtoolkit.com.br
Mapa do Site
Mostrar mapa do site
  Sobre

Feito de programadores para programadores.

Este site utiliza cookies. Ao continuar a utilizar este site, você concorda com a nossa utilização de cookies e política de privacidade.
Leia mais Concordo