Segurança dos seus dados
O que está escrito aqui é o que o sistema faz, e cada item tem código e teste. O que ele ainda não faz está no fim da página.
O dado de uma loja não alcança a outra — e quem garante é o banco
O sistema é multiempresa: várias lojas no mesmo banco. O isolamento não
depende de a consulta lembrar de filtrar: cada tabela tem política de segurança por
linha (Row Level Security) no PostgreSQL, e o usuário do sistema é
NOBYPASSRLS — ele não pode desligá-las.
Em termos práticos: se um dia alguém escrever uma consulta esquecendo o filtro da
loja, o banco devolve zero linha em vez de dado alheio. Vazamento por esquecimento de
WHERE é a falha mais comum deste tipo de sistema, e é a que está fechada na
camada que não esquece.
Senha, e o segundo fator
- senha guardada com bcrypt — não é possível ler a sua senha nem para nós, e a recuperação troca a senha, nunca a mostra;
- verificação em duas etapas por aplicativo autenticador (padrão TOTP, o mesmo do Google Authenticator), com códigos de recuperação de uso único;
- a sessão é um cookie assinado,
HttpOnlyeSameSite, e o sistema exige a senha de novo para operação sensível; - toda tela que grava algo tem proteção contra pedido forjado de outro site (CSRF), e tentativa de entrada tem limite por minuto.
O que é cifrado, e por que não é tudo
CPF, CNPJ, telefone e e-mail do seu cliente ficam cifrados (AES-256-GCM) com uma chave de cada loja, guardada em cofre e nunca escrita em log. A busca por documento funciona por índice cego: o sistema compara um resumo criptográfico, sem precisar decifrar nada.
O preço do produto, o pedido e o estoque não são cifrados, e isto é escolha: cifrar o que entra em soma, ordenação e busca transformaria cada relatório numa operação lenta e cheia de pontos de falha — sem reduzir risco, porque o acesso já é controlado por loja. Cifrar tudo é fácil de anunciar e caro de sustentar.
Chave de API, aviso assinado e registro
- a chave de API aparece uma única vez, na hora de criar; depois nem nós conseguimos mostrá-la — guardamos só o resumo;
- cada chave tem escopo: a que lê catálogo não cria pedido;
- o aviso que o sistema manda ao seu (webhook) vai assinado com carimbo de hora, para você conferir que veio daqui e não é repetição;
- operação que muda dinheiro, limite de crédito ou cadastro fica registrada com quem fez e quando, e o registro não pode ser alterado nem apagado pelo sistema — nem por nós.
Onde o dinheiro passa (e por que não passa por nós)
O recebimento é pela sua conta no Asaas: Pix, boleto e cartão caem direto nela. Não guardamos número de cartão — nunca chega aqui. A chave do Asaas fica cifrada, e o aviso de pagamento que o Asaas manda é conferido pela assinatura antes de mudar qualquer pedido.
Cópia de segurança e o que fazemos quando algo dá errado
O banco tem cópia diária com retenção, e o sistema publica um endereço de estado
(/status) que a nossa administração central lê de hora em hora — se o sistema cair
ou o banco não responder, isso aparece num painel, não numa reclamação sua. A publicação de
versão nova só é considerada boa quando o endereço público responde de fora:
se não responder, a versão anterior continua servindo.
Seus dados são seus — e dá para levar embora
Catálogo e pedidos saem em planilha a qualquer momento, sem pedir a ninguém. Não há cláusula de prazo mínimo nem taxa de saída. Dado de cliente só é tratado para o que a venda exige, e o pedido de exclusão é atendido respeitando o que a lei fiscal obriga a guardar — o detalhe está em Privacidade.
O que ainda não existe, dito antes de você perguntar
- não temos certificação externa (ISO 27001, SOC 2) nem auditoria de terceiro. Dizer "somos certificados" sem certificado é o tipo de frase que derruba uma venda quando alguém pede o documento;
- não há programa de recompensa por falha nem teste de invasão contratado. Se você encontrar uma falha, escreva para nós: tratamos com prioridade e dizemos o que fizemos;
- a infraestrutura é compartilhada com outros sistemas do mesmo grupo enquanto o produto é novo. Está dito porque é verdade, e porque para cliente de porte isso muda — nesse caso a conversa é máquina dedicada.