docs: adicao da documentacao de seguranca de dados e PCI-DSS em SEGURANCA.md e gemini.md
Build and Deploy (Gitea) / build-and-deploy (push) Successful in 43s Details

This commit is contained in:
Sidney Gomes 2026-07-21 18:15:38 -03:00
parent 11a0c20aa2
commit 65a245f972
2 changed files with 48 additions and 0 deletions

33
SEGURANCA.md Normal file
View File

@ -0,0 +1,33 @@
# 🛡️ 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/...`).

View File

@ -108,3 +108,18 @@ Passos executados:
4. `git add .` 4. `git add .`
5. `git commit -m "Configuracao completa MicrotecFlix para deploy no Docker Swarm via Portainer"` 5. `git commit -m "Configuracao completa MicrotecFlix para deploy no Docker Swarm via Portainer"`
6. `git push -u origin main` 6. `git push -u origin main`
---
## 6. Arquitetura & Segurança 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`). |
| **Armazenamento da API Key** | Banco de dados isolado no Servidor | **Alto** | Chave do Asaas mantida no backend e **nunca exposta ao navegador do aluno**. Acesso restrito a rotas protegidas por JWT Admin. |
| **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 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. |