O Que É um Cookie de Sessão? Mantendo Você Autenticado
Um cookie de sessão é um pequeno valor armazenado no browser que identifica um usuário autenticado entre requisições, para que ele não precise se autenticar novamente a cada página.
Um cookie de sessão é o que mantém você autenticado enquanto navega por uma aplicação web. Depois que você se autentica, o servidor emite um identificador de sessão armazenado em um cookie; o browser o envia a cada requisição para que o servidor saiba quem você é. Como esse cookie efetivamente é a sua sessão, protegê-lo é central para a segurança web, inclusive para os dashboards que sua equipe usa.
Como cookies de sessão funcionam
No login, o servidor cria uma sessão e retorna um identificador em um cookie. O browser anexa esse cookie a cada requisição subsequente ao site. O servidor consulta a sessão e trata a requisição como autenticada, sem necessidade de novo login.
Protegendo o cookie
- HttpOnly: impede que o JavaScript leia o cookie, limitando o roubo via XSS.
- Secure: envia o cookie apenas por HTTPS.
- SameSite: limita o envio cross-site, reduzindo o risco de CSRF.
Por que o roubo é perigoso
Quem quer que possua um cookie de sessão válido está efetivamente autenticado como aquele usuário. Roubar um, por meio de cross-site scripting ou uma conexão insegura, permite que um atacante se passe pela vítima. É por isso que as flags de proteção acima são essenciais.
Tempo de vida da sessão e rotação
Sessões devem expirar após inatividade e ser invalidadas no logout. Rotacionar o identificador de sessão após o login (e em mudanças de privilégio) previne ataques de fixação, nos quais um atacante planta um session ID conhecido antes de a vítima se autenticar.
Cookies de sessão e CI/CD
Se você constrói aplicações web, flags de cookie corretas e o tratamento adequado de sessão fazem parte da codificação segura. Verificações de segurança em CI e revisões devem confirmar que HttpOnly, Secure e SameSite estão definidas, já que uma flag ausente é uma vulnerabilidade fácil e comum.
Cookies versus tokens
Cookies de sessão lidam com sessões humanas baseadas em browser. Eles são distintos dos bearer tokens que pipelines usam para acesso máquina-a-máquina. Um cookie de sessão é para pessoas em um browser; um access token é para automação chamando uma API.
Principais conclusões
- Um cookie de sessão identifica um usuário autenticado entre requisições em um browser.
- As flags HttpOnly, Secure e SameSite defendem contra roubo e abuso cross-site.
- Sessões devem expirar, rotacionar no login e ser invalidadas no logout.