Persistência Indevida de Dados
A persistência indevida ocorre quando dados sensíveis permanecem armazenados no dispositivo do usuário por mais tempo do que o necessário ou em locais inadequados, aumentando o risco de acesso não autorizado.
O Princípio da Necessidade
Dados de saúde e identificação pessoal só devem residir no navegador enquanto são estritamente necessários para a funcionalidade atual. Assim que o usuário encerra sua tarefa ou faz logout, esses dados devem ser eliminados.
Como fazer vs Como não fazer
✅ Como fazer
- Utilize o SessionStorage para dados temporários da jornada que devem ser limpos ao fechar a aba.
- Implemente uma função centralizada de Logout que limpe explicitamente todos os Storages (
localStorage.clear(),sessionStorage.clear()) e delete os cookies de aplicação. - Prefira manter dados sensíveis apenas na memória RAM da aplicação (ex: estado do Redux ou TanStack Query sem persistência em disco).
- Configure tempos de expiração curtos para dados cacheados no IndexedDB ou Service Workers.
❌ Como não fazer
- Não utilize o LocalStorage para armazenar informações de saúde que não precisam persistir após o fechamento do navegador.
- Não confie que o usuário fechará a aba ou o navegador; utilize timeouts de inatividade para limpar dados sensíveis da memória e forçar o logout.
- Não esqueça de limpar caches de Service Workers ou instâncias de bancos de dados locais (IndexedDB) que possam conter dados de pacientes ao realizar a troca de usuário ou encerramento de sessão.