← Voltar ao site
Security by Design · Security by Default

Segurança

Como a segurança é incorporada na arquitetura e no desenvolvimento do Caixa Exato desde a concepção

📅
Última atualização: 14 de agosto de 2026. Este documento descreve os princípios, controles técnicos e práticas de segurança adotados no desenvolvimento e operação da plataforma Caixa Exato.
Índice
  1. Princípios de segurança
  2. Segurança desde a concepção (Security by Design)
  3. Segurança por padrão (Security by Default)
  4. Controles técnicos implementados
  5. Controle de acesso e identidade
  6. Proteção de dados em trânsito e repouso
  7. Gestão de vulnerabilidades
  8. Resposta a incidentes
  9. Contato de segurança

1. Princípios de Segurança

A segurança do Caixa Exato é construída sobre dois princípios fundamentais que orientam todas as decisões de arquitetura e desenvolvimento:

🏗️
Security by Design
A segurança é considerada desde a fase de concepção do sistema — não adicionada posteriormente. Cada funcionalidade é projetada com controles de segurança integrados à sua arquitetura.
🔒
Security by Default
O sistema opera no estado mais seguro possível por padrão. Recursos, acessos e permissões são negados por padrão e liberados explicitamente conforme necessário.
🏛️
Defesa em Profundidade
Múltiplas camadas de controle independentes — banco de dados, servidor, aplicação e rede — garantem que uma falha isolada não comprometa o sistema inteiro.
🔑
Privilégio Mínimo
Cada usuário, processo e componente acessa apenas o estritamente necessário para sua função. Acessos amplos são evitados por arquitetura, não por configuração.

2. Segurança desde a Concepção (Security by Design)

As decisões de segurança abaixo foram tomadas na fase de modelagem do sistema, antes do desenvolvimento, e fazem parte da arquitetura fundamental da plataforma:

Isolamento multi-tenant por arquitetura

Cada empresa (tenant) possui um identificador único (tenant_id) vinculado a todos os seus dados no banco. O isolamento é garantido em nível de banco de dados via Row Level Security — não apenas na camada de aplicação — impedindo que dados de um cliente sejam acessados por outro, mesmo em caso de falha na lógica da aplicação.

Lógica de negócio exclusivamente server-side

Toda regra de negócio, validação e acesso ao banco de dados é executada em Server Actions do Next.js — código que roda exclusivamente no servidor. Nenhuma credencial, regra de autorização ou dado sensível é exposto ao navegador do usuário.

Controle de acesso baseado em perfis (RBAC)

O sistema define perfis com permissões distintas desde a modelagem: ADMIN (equipe interna), DONO (titular da conta), FINANCEIRO e VENDEDOR (sub-usuários com acesso limitado). Cada rota e ação verifica o perfil antes de qualquer operação.

Limites de usuários por plano na camada de servidor

As restrições de quantidade de usuários por plano contratado são verificadas e aplicadas no servidor — não no frontend — impedindo que a regra seja contornada por manipulação de interface.

Separação de ambientes

Os ambientes de desenvolvimento, homologação e produção são completamente isolados, com credenciais, bancos de dados e configurações independentes. Não há compartilhamento de dados entre ambientes.

3. Segurança por Padrão (Security by Default)

Os controles abaixo estão ativos por padrão em toda a plataforma — nenhuma configuração adicional é necessária para ativá-los:

Princípio aplicado: toda rota, dado e operação são negados por padrão. O acesso é concedido explicitamente apenas após autenticação e verificação de perfil bem-sucedidas.

4. Controles Técnicos Implementados

Controle Implementação Status
Isolamento de dados por tenant Row Level Security (RLS) no PostgreSQL + tenant_id em todas as tabelas Ativo
Autenticação Supabase Auth — bcrypt para senhas, JWT para sessões Ativo
Criptografia em trânsito HTTPS/TLS em todas as comunicações (Vercel + Supabase) Ativo
Criptografia em repouso AES-256 no Supabase (AWS RDS) Ativo
Content Security Policy CSP configurado no next.config.ts com allowlist de origens Ativo
Gestão de segredos Variáveis de ambiente no Vercel — nunca no repositório Ativo
Controle de acesso por perfil (RBAC) Verificação de perfil em cada Server Action e rota Ativo
Repositório privado Código-fonte em repositório GitHub privado com acesso restrito Ativo
Backup automático do banco Snapshots diários com retenção de 7 dias (Supabase) Ativo
Hashing de dados pessoais SHA-256 aplicado a dados enviados a integrações externas Ativo

5. Controle de Acesso e Identidade

O acesso à plataforma é controlado por uma hierarquia de perfis com permissões distintas:

PerfilQuem éNível de acesso
ADMIN Equipe interna do Instituto Carlesso Acesso total a todos os tenants — exclusivo para operação interna
DONO Titular da conta contratante Acesso completo aos dados da própria empresa; pode criar sub-usuários
FINANCEIRO Sub-usuário do DONO Acesso ao módulo financeiro da empresa; sem acesso a configurações
VENDEDOR Sub-usuário do DONO Acesso ao módulo de vendas e CRM; sem acesso financeiro

A quantidade de sub-usuários é limitada pelo plano contratado e verificada no servidor a cada criação. Nenhum usuário pode elevar seus próprios privilégios.

6. Proteção de Dados em Trânsito e Repouso

7. Gestão de Vulnerabilidades

O Caixa Exato adota as seguintes práticas para prevenção e gestão de vulnerabilidades:

8. Resposta a Incidentes

Em caso de incidente de segurança que possa comprometer dados pessoais ou financeiros dos usuários:

Suspeita de incidente? Se você identificar qualquer comportamento suspeito em sua conta ou acesso indevido a seus dados, entre em contato imediatamente pelo e-mail abaixo.

9. Contato de Segurança

Para reportar vulnerabilidades, incidentes de segurança ou dúvidas sobre as práticas descritas neste documento:

Instituto Carlesso — Responsável de Segurança

E-mail: caixaexato@gmail.com

Relatórios de vulnerabilidade são tratados com prioridade e confidencialidade. Agradecemos a colaboração responsável da comunidade de segurança.