# 🛡️ 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 `` | **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/...`).