Token de sessão
O que é Token de sessão?
Token de sessãoIdentificador opaco emitido após a autenticação e devolvido pelo cliente em cada pedido, permitindo ao servidor recuperar o estado da sessão do utilizador.
Um token de sessão é a credencial que mantém um utilizador autenticado ao longo de pedidos HTTP sem estado. Na maioria dos casos é uma cadeia aleatória criptograficamente forte guardada no lado do servidor (numa base de dados, numa cache ou num cookie assinado) e enviada ao navegador como um cookie marcado com Secure, HttpOnly e SameSite. O servidor usa-o como chave no armazenamento de sessão que contém o ID do utilizador, os papéis e os metadados.
O OWASP ASVS e a Session Management Cheat Sheet recomendam que os identificadores de sessão tenham pelo menos 64 bits de entropia efetiva (um valor aleatório de cerca de 128 bits), sejam regenerados no login e na mudança de privilégios para derrotar a fixação de sessão, e imponham tempos de expiração por inatividade e absolutos, com invalidação no servidor ao terminar a sessão. Como um token roubado muitas vezes contorna as palavras-passe e até o MFA, o roubo de sessão é uma técnica preferida dos atacantes: a extensão Firesheep de Eric Butler, em 2010, "sequestrava" cookies de forma trivial em Wi-Fi aberto, acelerando a mudança do setor para HTTPS em todo o lado, e o malware moderno de roubo de informação (RedLine, Lumma) recolhe cookies de sessão ativos para sequestrar contas. Vincular os tokens ao contexto — HttpOnly para bloquear o roubo por JavaScript, SameSite para atenuar o CSRF, TLS para impedir a captura na rede e, opcionalmente, token binding ou impressões digitais do dispositivo — limita a repetição. Falhas comuns incluem IDs previsíveis, tokens expostos em URLs e sessões que nunca expiram.
flowchart LR A[O utilizador autentica-se] --> B[O servidor gera um<br/>token de alta entropia] B --> C[Set-Cookie: Secure;<br/>HttpOnly; SameSite] C --> D[O navegador guarda o cookie] D --> E[O token é enviado em<br/>cada pedido] E --> F[O servidor consulta o<br/>estado da sessão] F --> G[Terminar sessão / expiração:<br/>invalidar no servidor]
● Exemplos
- 01
Set-Cookie: SESSIONID=Z6r...; Secure; HttpOnly; SameSite=Lax
- 02
Regenerar o ID de sessão imediatamente após um login bem-sucedido para evitar a fixação.
● Perguntas frequentes
O que é Token de sessão?
Identificador opaco emitido após a autenticação e devolvido pelo cliente em cada pedido, permitindo ao servidor recuperar o estado da sessão do utilizador. Pertence à categoria Identidade e acesso da cibersegurança.
O que significa Token de sessão?
Identificador opaco emitido após a autenticação e devolvido pelo cliente em cada pedido, permitindo ao servidor recuperar o estado da sessão do utilizador.
Como se defender contra Token de sessão?
As defesas contra Token de sessão costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.