microtecflix/SEGURANCA.md

2.7 KiB

🛡️ Política & Arquitetura de Segurança de Dados - MicrotecFlix

Este documento detalha o armazenamento de credenciais, tokenização PCI-DSS, proteção de APIs e arquitetura de segurança da plataforma MicrotecFlix.


1. Armazenamento da API Key do Asaas

  • Localização: Exclusivamente no banco de dados do servidor (db.settings.asaasApiKey / PostgreSQL em produção).
  • Proteção Frontend: A API Key do Asaas NUNCA é trafegada ou enviada ao navegador do aluno.
  • Acesso Restrito: A leitura e atualização da chave ocorrem apenas através da rota autenticada POST /api/admin/settings, exigindo Token JWT válido e papel de Administrador (role === 'admin').
  • Comunicação Criptografada: Toda requisição à API do Asaas ocorre de Servidor-para-Servidor (Server-to-Server) utilizando rotas HTTPS criptografadas com TLS 1.3.

2. Nível de Segurança & Proteção de Dados (PCI-DSS & LGPD)

Camada de Segurança Tecnologia / Mecanismo Nível de Proteção Descrição Técnica
Tokenização de Cartões (PCI-DSS) API /creditCard/tokenize (Asaas) Máximo Número completo do cartão, código CVV e validade NUNCA são gravados no banco de dados. Salva-se apenas o creditCardToken e os últimos 4 dígitos (•••• 4321).
Criptografia em Trânsito HTTPS / TLS 1.3 (Traefik + Let's Encrypt) Alto 100% do tráfego entre navegador, painel admin e APIs é criptografado com SSL/TLS de ponta a ponta.
Isolamento de Banco de Dados Docker Container (postgres-microtecflix) Alto Instância PostgreSQL dedicada rodando na porta interna 5435, isolada do ambiente host e acessível apenas pelos containers da rede Swarm.
Segurança do Webhook Token asaas-token no Header Alto Notificações de pagamento enviadas ao endpoint /api/webhooks/asaas sem o token configurado são rejeitadas imediatamente com HTTP 401 Unauthorized.
Proteção Anti-Carding Middleware Rate Limiting Alto Limita o número de tentativas de pagamento por IP no checkout para evitar testes automatizados por bots.
Proteção Anti-Crash (DOM) React ErrorBoundary + Encapsulamento <span> Alto Previne travamentos de tela branca causados por extensões do navegador ou tradução automática do Google Chrome.

3. Conformidade e Boas Práticas

  1. Senhas de Usuários: Armazenadas utilizando algoritmo de hash seguro bcrypt com salt.
  2. Sessões de Usuário: Autenticação via JSON Web Token (JWT) assinado com segredo forte e expiração de 7 dias.
  3. Controle de Acesso (RBAC): Separação estrita entre rotas de Aluno (/api/...) e Administrador (/api/admin/...).