devterview_$ iniciar simulação

Cenário: onde guardar o token de sessão no cliente

DifícilSêniorAutenticação

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.

#jwt#xss#csrf#cookies
publicidade

Relacionadas