Cookies, localStorage e sessionStorage: o que guardar em cada um
Publicado em 2026-10-26 por frfrand
Diferenças entre cookies e armazenamento web, expiração, segurança, sessões, XSS e CSRF explicados.

Cookies, localStorage y sessionStorage permitem conservar informações relacionadas com um site, mas não funcionam da mesma forma nem oferecem as mesmas propriedades de segurança. Escolher onde guardar dados de sessão sem entender essas diferenças pode expor informações ou quebrar o funcionamento de um aplicativo.
O que é um cookie?
Um cookie é um pequeno dado associado a um site que o navegador pode enviar automaticamente em solicitações HTTP que atendam a determinadas condições.
Por isso é usado para manter sessões: o navegador pode anexar um identificador de sessão sem que cada página tenha que pedir a senha novamente.
Seus atributos importam muito. Secure restringe o envio a conexões seguras nos contextos previstos; HttpOnly impede que JavaScript leia o cookie; SameSite controla parte do comportamento entre sites.
Não se deve assumir que qualquer cookie implica rastreamento publicitário. Alguns são essenciais para autenticar usuários ou manter preferências.
O que é localStorage?
É um armazenamento de pares chave-valor disponível para JavaScript da mesma origem, sujeito às políticas do navegador. Costuma conservar informações mesmo após fechar a guia ou o navegador, embora o usuário possa apagá-la e o navegador estabeleça limites.
Pode servir para guardar preferências não sensíveis, como o tema visual de um aplicativo.
Não é um local ideal para segredos importantes: se uma vulnerabilidade XSS permitir a execução de código na sua página, esse código pode acessar o armazenamento disponível para JavaScript.
E o sessionStorage?
Também armazena valores por origem, mas está associado à sessão de uma guia ou contexto de navegação. Normalmente é excluído quando essa sessão de página termina.
Por exemplo, pode ser útil para preservar temporariamente o andamento de um formulário em uma guia. Ainda assim, não constitui uma garantia de confidencialidade frente a scripts que sejam executados dentro dessa origem.
Tabela de comparação
| Característica | Cookie | localStorage | sessionStorage |
|---|---|---|---|
| É enviado automaticamente em HTTP? | Pode ser enviado de acordo com seus atributos | Não | Não |
| Pode ser lido por JavaScript? | Depende de HttpOnly e contexto | Sim, sob as regras da origem | Sim, sob as regras da origem |
| Por quanto tempo permanece? | De acordo com a duração e políticas | Normalmente até ser excluído ou limpo | Associado à sessão da guia |
| Uso comum | Sessões e preferências | Preferências não sensíveis | Estado temporário de uma guia |
Esta tabela simplifica alguns detalhes: o comportamento exato depende do navegador e das políticas de armazenamento.
Onde guardo um token de autenticação?
Não existe uma resposta universal. Um cookie HttpOnly com atributos corretos reduz a exposição do valor ao JavaScript, mas é preciso projetar proteção contra CSRF quando for o caso.
Armazenar um token em localStorage evita seu envio automático como cookie, mas aumenta sua exposição se um script malicioso for executado na origem.
A decisão depende da arquitetura, das ameaças, da duração da sessão e da forma de validar permissões. Copiar uma solução porque «todo mundo faz» não é suficiente.
É uma boa ideia armazenar dados pessoais?
Reduza as informações sensíveis armazenadas no navegador. Um campo de senha, dados de pagamento ou documentos privados não devem persistir sem uma necessidade real e controles apropriados.
Além disso, esses mecanismos não substituem o banco de dados do servidor. O usuário pode excluir seus dados locais, usar outro dispositivo ou navegar em um contexto privado.
Um exemplo útil
Um site de reservas pode salvar o idioma preferido em localStorage. A sessão do usuário pode ser gerenciada por meio de cookies configurados corretamente. E a etapa atual de um formulário pode ser mantida em sessionStorage para a guia ativa.
As reservas confirmadas, pagamentos e permissões devem ser verificados pelo backend: você não pode confiar em um preço simplesmente porque ele aparece no armazenamento do visitante.
Qual a relação com o ArduMaker?
Se você hospeda um aplicativo web no ArduMaker, seu frontend pode utilizar esses mecanismos como qualquer outro site. O VPS onde você executa o backend não determina automaticamente se os cookies ou tokens estão configurados de forma segura.
Em uma frase: cookies, localStorage e sessionStorage são ferramentas diferentes. Escolha cada uma de acordo com persistência, exposição a JavaScript e necessidade real.
Fontes: Cookies na MDN · Web Storage API · OWASP HTML5 Security.
