Pular para o conteúdo principal

Status: Approved · v2 · SPEC-ARCH-SECURITY-001

depends_on: SPEC-DOMAIN-PERMISSION-001, SPEC-DOMAIN-PAYMENT-001

used_by: IS-ZERO-00.4, IS-MVP-09.4, IS-MVP-14.3, IS-MVP-15.2

Segurança e privacidade

Controles mínimos concretos para proteger contas, gestão, pagamentos, uploads e dados públicos.

Modelo

Threat model MVP

Principais riscos: account takeover, IDOR em gestão, upload malicioso, vazamento de public/private DTO, duplicação financeira, webhook forjado, abuso de auth/report e open redirect em AuthIntent.

Controles

  • Auth/refresh rotation e rate limit.
  • Permission guards por entity+key; nunca confiar em ID fornecido sem membership lookup.
  • Validation/sanitization e limites de payload.
  • Presigned uploads com allowlist, size e ownership; processamento futuro fora de request.
  • Webhook signature, replay protection e event idempotency.
  • Secrets apenas server-side; .env.example sem valores reais.
  • CORS, HTTPS e headers seguros por ambiente.
  • DTO público construído explicitamente.

Privacidade

Data minimization; controls de player/address/supporter; direito de revisão/anonimização via support request. Não transformar guests em perfis públicos sem confirmação.

Checklist por endpoint

  • Quem pode chamar?
  • Qual entity/membership?
  • Qual DTO de saída?
  • Precisa idempotência/audit/rate limit?
  • Quais campos devem ser mascarados?
  • Existe enum/status allowlist?

Critérios de aceite

  • IDOR testado nos módulos de gestão.
  • Nenhum segredo público.
  • Webhook não processa replay.
  • Privacy flags afetam search/cards/public endpoints.