Autenticação por Sessão: o alicerce dos logins tradicionais na web

Programação

Autenticação por Sessão: o alicerce dos logins tradicionais na web

Antes de tokens e APIs modernas, praticamente toda aplicação web usava sessões para manter o usuário logado. É um método que ainda funciona muito bem para sistemas tradicionais, onde as páginas são geradas pelo próprio servidor.

A ideia é simples: depois que o usuário faz login, o servidor cria um registro interno (a sessão) guardando quem ele é. Em vez de repetir usuário e senha em toda requisição, o navegador recebe apenas um identificador dessa sessão, normalmente guardado em um cookie.

Um exemplo típico de login com sessão em PHP:

<?php
session_start();

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $usuario = $_POST['usuario'];
    $senha   = $_POST['senha'];
    $hash    = buscarHashDoUsuario($usuario);

    if ($hash && password_verify($senha, $hash)) {
        session_regenerate_id(true);
        $_SESSION['usuario_id'] = buscarIdDoUsuario($usuario);
        header('Location: /painel.php');
        exit;
    }

    exit('Credenciais invalidas.');
}

E, na página protegida, basta checar se a sessão existe:

<?php
session_start();

if (empty($_SESSION['usuario_id'])) {
    header('Location: /login.php');
    exit;
}

echo "Bem-vindo de volta, usuario #{$_SESSION['usuario_id']}";

Alguns detalhes fazem toda a diferença na segurança de sessões: sempre regenerar o ID da sessão após o login (evita ataques de fixação de sessão), e configurar o cookie com as flags secure, httponly e samesite, para reduzir riscos de roubo de sessão e CSRF.

O ponto fraco das sessões aparece quando o sistema cresce e passa a rodar em vários servidores ao mesmo tempo: como a sessão fica guardada na memória do servidor, é preciso compartilhar esse estado entre as instâncias, geralmente usando algo como Redis. Para aplicações que crescem para múltiplos servidores ou para APIs consumidas por aplicativos externos, tokens costumam ser uma escolha mais prática.

Fonte
Equipe Suadica

Veja também

Mais Dicas