Skip to main content
Todos os Termos Glossary

Local Storage

Definition

O Local Storage é uma API de armazenamento web que permite aos sites guardar pares de chave-valor em um navegador sem prazo de expiração. Embora seja conveniente para a persistência de dados client-side, exige atenção cuidadosa à segurança, pois os dados armazenados ficam acessíveis a qualquer JavaScript em execução na origem. Dados sensíveis devem ser criptografados, e as entradas precisam ser validadas para prevenir ataques de XSS.

O que é o Local Storage

O Local Storage é uma API de Web Storage que permite a um site guardar pares chave-valor de texto no navegador, sem prazo de validade, restritos a uma única origem (protocolo mais host mais porta). Os dados escritos por pages.example.com só podem ser lidos por essa mesma origem, e persistem depois de fechar abas, recarregar a página e reiniciar o navegador, até que o código ou o utilizador os apague. O acesso é síncrono, através de window.localStorage, por isso as leituras e escritas bloqueiam a thread principal e o limite prático de tamanho ronda os 5 a 10 MB por origem. Ao contrário dos cookies, o conteúdo nunca viaja com os pedidos HTTP, o que mantém os cabeçalhos dos pedidos pequenos, mas também significa que o servidor nunca vê nem controla o que uma página guarda ali.

Por que é importante para a segurança

A propriedade crítica é que qualquer JavaScript em execução na origem consegue ler todas as chaves do Local Storage. Não existe equivalente ao HttpOnly, por isso uma única falha de cross-site scripting, ou um script third-party comprometido, consegue percorrer o armazenamento e exfiltrar tudo o que encontrar. Por causa disto, tokens de sessão, JWTs, chaves de API ou dados pessoais guardados aqui ficam muito mais expostos do que o mesmo valor num cookie HttpOnly, que o script não consegue ler. Os valores também persistem indefinidamente, por isso um token roubado semanas depois do login ainda pode ser válido. O Local Storage não oferece encriptação, nem verificações de integridade, nem expiração automática, o que faz dele um cofre fraco para qualquer coisa que um atacante possa querer.

Como usá-lo de forma segura

Trate o Local Storage como público perante qualquer código na página. Mantenha os tokens de autenticação em cookies HttpOnly, Secure e SameSite, em vez de um armazenamento que o JavaScript consegue ler, e guarde localmente apenas dados não sensíveis e de baixo valor. Higienize e valide tudo o que ler de volta antes de o inserir no DOM, uma vez que valores controlados por um atacante recuperados do armazenamento podem provocar XSS baseado no DOM. Uma Content Security Policy rigorosa limita quais scripts podem correr e, portanto, quem pode tocar no armazenamento. A cside é relevante no que toca aos scripts third-party: ao encaminhar os scripts externos através de um método Script e analisar o payload, consegue detetar e bloquear um script de fornecedor que comece a ler o armazenamento e a exfiltrá-lo.

Definição

O Local Storage é mais seguro do que os cookies?

Não para segredos. O Local Storage nunca é enviado com os pedidos, o que evita alguma exposição a CSRF, mas todos os scripts na origem conseguem lê-lo, e não pode ser marcado como HttpOnly. Um cookie HttpOnly é invisível para o JavaScript, por isso, para tokens de sessão, um cookie bem configurado é a escolha mais segura.

Definição

Os dados no Local Storage podem ser partilhados entre subdomínios?

Não. O Local Storage é particionado por origem completa, por isso app.example.com e shop.example.com têm armazenamentos separados e isolados, e não conseguem ler os dados um do outro. Os cookies podem ser partilhados entre subdomínios através do atributo domain, mas o Local Storage não tem um mecanismo equivalente.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Agende uma demonstração

Quer ver isso em detalhe com um engenheiro?

Trinta minutos, no seu próprio site. Sem slides.

Agende uma demo personalizada para ver:

Como alcançar a conformidade com os requisitos 6.4.3 e 11.6.1 do PCI DSS em 1 dia
Por que scripts de terceiros são um risco de segurança para você e seus visitantes
Como monitorar vazamentos de privacidade e consentimento (RGPD, CCPA) em cada terceiro
Como conter abuso de cadastros, compartilhamento de contas e fraude de chargeback com device intelligence
Como detectar e controlar agentes de IA e bots que acessam seu site em tempo real

Prefere só mandar uma pergunta?

Procurando horários livres…

Apenas humanos de verdade. A gente saberia.

Problemas para agendar? Abrir o agendador em uma nova aba

O que você está tentando resolver?

Conte em uma linha e voltamos com algo útil, não com um discurso genérico.

Costumamos ajudar com:

Ver quais scripts de terceiros rodam no seu site
Evidências para PCI DSS 6.4.3 e 11.6.1
Bots, agentes de IA e roubo de contas

Prefere agendar um horário? Escolher um horário