Session Hijacking
O Sequestro de Sessão (Session Hijacking) ocorre quando um atacante consegue obter o identificador de sessão de um usuário legítimo e o utiliza para se passar por esse usuário perante o servidor.
Como o ataque acontece?
- Roubo de Cookies (XSS): O atacante injeta um script que lê o cookie de sessão e o envia para um servidor externo.
- Interceptação de Rede (Sniffing): Se a conexão não for HTTPS, o atacante pode ler o token que viaja em texto puro.
- Predição de ID: Se os IDs de sessão forem sequenciais ou previsíveis, o atacante pode tentar adivinhá-los.
Como fazer vs Como não fazer
✅ Como fazer
- Utilize o atributo
HttpOnlyem todos os cookies de sessão para mitigar roubo via XSS. - Utilize HTTPS em toda a aplicação para impedir interceptação.
- Implemente IDs de sessão aleatórios e longos (geralmente gerenciados por bibliotecas de backend seguras ou JWTs assinados).
- Implemente o Logout no Servidor: Quando o usuário clica em sair, a sessão deve ser invalidada no servidor, e não apenas o cookie deletado no Front-end.
- Utilize o cabeçalho
Strict-Transport-Security(HSTS).
❌ Como não fazer
- Não utilize IDs de sessão baseados em informações do usuário (como nome ou ID do banco) que possam ser adivinhados.
- Não envie o identificador de sessão como um parâmetro na URL (ex:
site.com/home?session_id=123), pois ele vaza em logs de servidor e no histórico do navegador. - Não configure tempos de expiração de sessão excessivamente longos para aplicações que lidam com dados sensíveis de saúde.