Skip to content

IndexedDB (Riscos)

O IndexedDB é um banco de dados transacional completo integrado ao navegador. Ele é projetado para armazenar volumes significativos de dados estruturados e arquivos (Blobs).

Quando usamos?

É útil para aplicações que precisam funcionar offline ou que lidam com grandes quantidades de dados que não cabem no LocalStorage (como o cache de imagens de exames no Laudário).

Riscos de Segurança

  1. Acesso via Script: Assim como o LocalStorage, o IndexedDB é acessível via JavaScript pela mesma origem (SOP).
  2. Persistência de Longo Prazo: Dados no IndexedDB não expiram sozinhos. Se dados sensíveis forem salvos lá, eles permanecerão no disco do usuário até serem explicitamente deletados.
  3. Vazamento de Dados em Computadores Compartilhados: Se o usuário não limpar os dados ou não fizer logout corretamente, o próximo usuário do computador pode ter acesso aos dados armazenados.

Como fazer vs Como não fazer

✅ Como fazer

  • Utilize o IndexedDB apenas quando o LocalStorage não for suficiente em termos de performance ou tamanho.
  • Implemente uma rotina rigorosa de limpeza de dados no momento do Logout.
  • Considere criptografar dados sensíveis antes de salvá-los no IndexedDB (embora a chave de criptografia ainda precise ser gerenciada com cuidado).

❌ Como não fazer

  • Não armazene dados de saúde (laudos, diagnósticos) no IndexedDB sem uma justificativa técnica clara e uma estratégia de limpeza automática.
  • Não confie que o navegador limpará o banco de dados sozinho quando a sessão expirar; o IndexedDB é persistente por natureza.
  • Não utilize o IndexedDB para armazenar tokens de sessão ou credenciais.