Cenário: onde guardar o token de sessão no cliente
Pergunta
Você tem um SPA que recebe um token de autenticação do backend. Guardar em localStorage ou em cookie? Quais os riscos de cada opção?
Resposta esperada
localStorage é acessível por qualquer JavaScript da página — se houver uma falha de XSS, o atacante lê o token e o rouba. Cookie com flags `HttpOnly` + `Secure` + `SameSite` não é acessível ao JS, o que protege contra roubo via XSS, mas cookies são enviados automaticamente pelo navegador, o que abre CSRF — mitigado por `SameSite=Lax/Strict` e/ou token anti-CSRF. Recomendação comum: refresh token em cookie HttpOnly e access token de vida curta em memória (variável JS, não persistida), aceitando que um reload exige refresh. O ponto da resposta é reconhecer que não existe opção sem trade-off e nomear a ameaça de cada lado (XSS vs CSRF).
Por que perguntam isso
Pergunta de nível sênior porque a resposta 'certa' depende do modelo de ameaça. Reprova quem diz 'localStorage é seguro' sem ressalva. Aprova quem articula XSS vs CSRF e propõe access token em memória + refresh em cookie.