34 lines
2.7 KiB
Markdown
34 lines
2.7 KiB
Markdown
# 🛡️ 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/...`).
|