Por que o token de sessão precisa ser aleatório e trocar de tempos em tempos
Um token previsível ou que nunca muda é um token que se adivinha. Entenda o que significa aleatório de verdade e onde a rotação evita o dano.
Bruno Alexandre·16/10/2026·5 leituras
O token de sessão é uma credencial. Tratar uma credencial como credencial significa duas coisas: que ela não pode ser adivinhada e que ela pode ser trocada.
A primeira é sobre aleatoriedade. Um token curto, formado por data, número de sequência e nome de usuário, é adivinhável. Qualquer pessoa que descubra o formato consegue montar valores válidos sem esforço. O token precisa ter entropia suficiente, gerado por um gerador criptográfico, e precisa ter tamanho suficiente para que a busca por força bruta seja impensável. Quando o valor do token aparece em log de acesso, em mensagem de erro ou em endereço de página, ele deixa de ser credencial e vira texto público.
A segunda é sobre rotação. Um token que nunca muda é um token que fica valido por mais tempo do que deveria. Quando a pessoa troca a senha, o ideal é que o token também mude, porque um token antigo continua sendo uma chave antiga da conta. Quando a pessoa sobe de privilégio, o ideal é que o token mude de novo, para que uma sessão de menor privilégio não se transforme numa sessão maior só porque o valor antigo escapou.
O fluxo legítimo da sessão: o token é criado, guardado e devolvido a cada requisição
Há ainda a rotação periódica, que existe por um motivo simples: o token fica exposto toda vez que o navegador faz uma requisição, e cada uma dessas requisições é uma chance. Trocar o identificador de tempos em tempos reduz a janela útil de um token comprometido, sem exigir que a pessoa perceba nada.
O erro comum é tratar a rotação como formalidade, chamando o mesmo valor de identificador de sessão por anos. O resultado é que um único token vazado continua valendo por meses, e o cliente que teve a conta acessada não tem como sair disso.
Em 21 de outubro de 2026 o PHP corrigiu duas falhas críticas que permitem executar código sem qualquer autenticação. Quem tem site em PHP precisa atualizar hoje.