Pular para o conteúdo
Todos os conceitos

Identificadores de sessão

O identificador de sessão é uma senha temporária. Previsível ou fixável, ele troca de dono.

Mesmo quando a sessão fica do lado do servidor, o navegador carrega um identificador de sessão: um valor que aponta para a sua sessão guardada. Na prática ele é uma senha temporária. Se alguém usar o seu identificador, o servidor atende como se fosse você. Daí duas falhas clássicas.

Identificador previsível. Se o valor é um contador (sess_0001a2f0, sess_0001a2f1, sess_0001a2f2, ...) ou sai de um gerador fraco, dá para adivinhar o dos outros. Vendo os seus de alguns logins seguidos, você deduz o padrão e calcula o de quem logou no meio, inclusive o do administrador.

identificadores em ordem de login você sess_0001a2f0 administrador sess_???????? você sess_0001a2f2 contador: o do meio é f0 + 1 sess_0001a2f1 assume a sessão do admin
Identificadores de sessão em sequência previsível; quem vê dois seguidos deduz o que ficou no meio e assume a sessão do administrador.

Fixação de sessão. Se o servidor não troca o identificador no momento do login, um atacante pode plantar um valor conhecido no navegador da vítima antes dela entrar; depois do login, aquele mesmo identificador já está autenticado como a vítima.

O conserto junta três cuidados: identificador aleatório e longo (de um gerador seguro, não um contador), trocado a cada login (fecha a fixação) e preso ao contexto (expira, e idealmente confere origem). Assim ninguém adivinha nem reaproveita o crachá de outro.

Aparece nestes desafios