A LGPD trouxe para o mundo dos DEV's uma série de desafios ao lidar com dados sensíveis. Entre as perguntas mais comuns estão:
- Como armazenar esses dados?
- Como trafegá-los com segurança?
- Como exibi-los sem expor informações?
- Quais recursos interagem com esses dados?
Nem sempre existe uma solução única para todos os casos, mas o interessante é que quase todos os recursos e frameworks oferecem formas de lidar com esses desafios de maneira transparente e eficaz.
Armazenamento seguro
No que diz respeito ao armazenamento, bancos relacionais como o MySQL oferecem funções nativas de criptografia, como AES_ENCRYPT e AES_DECRYPT. Integrá-las em aplicações Spring Boot é simples, utilizando anotações como:
@Column
@ColumnTransformer
Se preferir não depender das funções do banco, é possível criptografar e descriptografar os dados com Java puro (java.security) e anotações, usando:
@Convert
@Converter
Comunicação entre serviços
No contexto de microserviços, a comunicação geralmente ocorre via HTTP (REST) ou mensageria (RabbitMQ, Kafka, etc.).
- REST: por usar o protocolo HTTP, é possível aplicar SSL/TLS, garantindo a segurança na troca de informações.
-
Mensageria: além de conexões seguras (TLS, mTLS), é possível criptografar os payloads. No RabbitMQ com Spring, basta adicionar
MessageConverter's
ao produzir e consumir mensagens.
Cuidados com logs
O Logback, framework padrão de logs no Spring, permite configurar filtros e máscaras para evitar a exposição de dados sensíveis — tudo isso sem alterar uma linha do código da aplicação.
O segredo está nos frameworks
Apesar dos desafios, sempre há formas de atender aos requisitos da LGPD sem impactar diretamente o código da aplicação. A maioria dos frameworks modernos oferece recursos prontos para isso, geralmente baseados no padrão de projeto Interceptor, que permite interceptar ações e manipular informações de forma transparente.
Dicas finais
- Em aplicações, o tratamento de dados sensíveis geralmente ocorre nas entradas e saídas (leitura e escrita), nunca no meio do processo;
- Requisitos não funcionais, como segurança e privacidade, podem (e devem) ser atendidos sem interferir bruscamente nos algoritmos da aplicação;
- Conhecer bem os frameworks e suas ferramentas é o que faz a diferença.
Segue link no GitHub com alguns exemplos: https://github.com/oigorrudel/lgpd-examples
Here’s something exciting: Dev.to is distributing DEV Contributor rewards for our top content creators. Click here HERE. for verified Dev.to users only. – Dev.to Team