Suas fotos não somem. E aqui está exatamente como.
Quando um casal te entrega o casamento, eles entregam um momento que não volta. Quando você sobe esse casamento na Leint, é assim que tratamos: como arquivo que não pode ser perdido.
Esta página explica, sem rodeios, como suas fotos ficam guardadas, como sua conta fica isolada das outras e o que ainda estamos construindo. Sem jargão. Sem promessa que a gente não cumpre.
Encontrou um problema de segurança? Avisa direto: security@leint.com.br
Como suas fotos ficam guardadas
Toda foto que você sobe para a Leint passa por três camadas independentes antes de aparecer na galeria do seu cliente. Funciona assim:
Camada 1 — Onde sua foto mora (Cloudflare R2)
Suas fotos ficam num storage profissional da Cloudflare — a mesma infraestrutura que agências fotográficas internacionais usam. A Cloudflare declara durabilidade de 99,999999999% — onze noves, segundo a modelagem estatística da própria provedora (verificável em developers.cloudflare.com/r2). Em linguagem de fotógrafo: a expectativa é perder menos de uma foto a cada cem bilhões de fotos por ano.
Vale a distinção: durabilidade mede a probabilidade de uma foto que está armazenada continuar acessível — é diferente de uptime regional, que pode oscilar pontualmente em qualquer infraestrutura de internet.
A foto nunca fica salva no nosso servidor de aplicação nem no nosso banco de dados. O servidor manda a foto direto pro storage e busca direto de lá. Menos passos, menos pontos de falha.
Camada 2 — Cópia em outro continente (Backblaze, Amsterdã)
A cada hora, um robô espelha tudo da Camada 1 para um segundo provedor, em outro continente — Backblaze B2, data center de Amsterdã.
Esse segundo backup tem uma trava chamada Object Lock COMPLIANCE: por sete dias, mesmo que alguém com a senha de admin tente apagar uma foto, a foto fica. É a rede de proteção contra dois tipos de cenário extremo: erro humano dentro da Leint e uma conta da Cloudflare comprometida.
Camada 3 — Backup do banco de dados (Supabase)
Onde ficam as informações dos seus clientes, propostas, contratos, links de galeria e tudo que não é foto: num banco de dados hospedado no Supabase, com backup automático diário e 7 dias de retenção. Se algo der errado no banco, conseguimos voltar para um snapshot de até uma semana atrás.
Resumindo em uma frase: para você perder uma foto na Leint, três camadas teriam que falhar ao mesmo tempo, em provedores e continentes diferentes. Não é impossível — nada é. Mas é pra ser muito improvável.
Cada conta enxerga só a própria casa
A Leint é uma plataforma compartilhada — vários fotógrafos usam o mesmo sistema. Mas o sistema é desenhado pra que uma conta nunca consiga enxergar dado de outra. Vale para fotos, propostas, contratos, clientes, equipe, financeiro: tudo.
A peça técnica chama Row Level Security. É uma política aplicada na borda do banco que filtra automaticamente toda consulta pelo dono da conta. Não é um filtro que o programador "lembra de colocar" — é uma política que o banco aplica antes de devolver qualquer resposta. Mesmo se um dia alguém esquecer de filtrar, o banco filtra sozinho.
Senhas, login e acesso
- Senhas nunca são guardadas em texto. Usamos o Supabase Auth com
bcrypt— padrão da indústria. Mesmo se alguém roubasse o banco, não conseguiria ler as senhas. - Tudo trafega criptografado. Site (
leint.com.br) e app (app.leint.com.br) rodam exclusivamente em HTTPS com TLS 1.3. Ninguém escuta no caminho. - Quem tem acesso administrativo à infraestrutura da Leint usa 2FA obrigatório. Isso vale pra todos os painéis administrativos — Supabase, GitHub, Vercel, Cloudflare, Backblaze e Brevo.
- Permissões de equipe granulares. Quando você convida um auxiliar pra sua conta, ele entra com um papel pré-definido — por exemplo: só envio de fotos, sem ver financeiro. Cada papel tem limitações claras, controladas direto no banco.
O que ainda estamos construindo
A gente fez uma auditoria de segurança honesta no app no começo de maio. Mapeamos o que já existe e o que precisa ser melhorado. Em vez de esconder, preferimos contar. Aqui está o que está em desenvolvimento:
- Lixeira com 30 dias de recuperação. Hoje, quando você deleta uma foto, ela vai pro storage principal e some. Estamos implementando uma lixeira para que deleções acidentais possam ser revertidas em até 30 dias.
- Exportação completa em um clique. Se algum dia você quiser baixar tudo da sua conta — fotos, contratos, dados de clientes — num arquivo só, esta funcionalidade está sendo desenvolvida. Hoje a exportação acontece sob demanda, escrevendo pra contato@leint.com.br ou dpo@leint.com.br.
- Trilha de auditoria visível. Estamos criando uma tela onde você poderá ver quem, da sua equipe, fez o quê e quando: login, deleção, alteração de cliente. Hoje esses logs existem em vários lugares, mas não estão consolidados num lugar bonito.
- 2FA opcional para sua conta. Já temos 2FA obrigatório pra quem opera a infraestrutura interna. Estamos avaliando como entregar a opção de 2FA pra você proteger sua própria conta de cliente.
- Excluir conta direto na interface. Hoje a exclusão de conta é feita por solicitação ao DPO (dpo@leint.com.br), dentro do prazo legal de 15 dias corridos. Estamos colocando isso na UI.
A gente mantém um backlog técnico priorizado dessas e outras melhorias internamente. À medida que cada item entra no ar, atualizamos esta página com a data exata.
Conformidade com a LGPD
A Leint segue a Lei Geral de Proteção de Dados (Lei nº 13.709/2018). Em particular:
- Você é o titular dos dados que sobe. Suas fotos, seus clientes, seus contratos: são seus. Não usamos suas fotos para treinar inteligência artificial, nem para qualquer fim que não seja entregar o serviço que você contratou.
- Você pode pedir, a qualquer momento: acesso aos seus dados, correção, exportação, exclusão ou portabilidade pra outra plataforma. Lista completa dos 11 direitos do titular na nossa Política de Privacidade, seção 8.
- Encarregado pelo Tratamento de Dados (DPO/Encarregado, conforme art. 41 da LGPD):
- Nome: Filipe Brandão Martins
- Canal de contato: dpo@leint.com.br (resposta em até 15 dias corridos, conforme art. 19, II, da LGPD).
- Detalhe completo: veja a Política de Privacidade.
Reportar vulnerabilidade
Se você é desenvolvedor, pesquisador de segurança ou só um usuário curioso que encontrou algo estranho:
A gente lê todo report. Se for um problema real, agradecemos publicamente (com sua permissão) e creditamos quem reportou.
O que pedimos para que o reporter atue de boa-fé (e mantenha proteção contra responsabilização sob a Lei nº 12.737/2012 e o art. 154-A do Código Penal):
— Testar exclusivamente em conta criada por você mesmo, no ambiente público da plataforma.
— Não acessar, baixar, ler ou modificar dados de outras contas, fotógrafos ou Clientes Finais.
— Não realizar testes que comprometam disponibilidade (DDoS, scraping massivo, fuzzing destrutivo).
— Reportar a falha em primeira mão para
security@leint.com.brantes de divulgar publicamente, dando à Leint janela razoável de mitigação (mínimo 30 dias corridos).Pesquisadores que respeitarem essas condições terão garantia de não-judicialização pela Leint, mesmo se involuntariamente acessarem informação sensível durante o teste de boa-fé.
Para quem quer mais detalhe técnico
Detalhes técnicos (clique para expandir)
Stack
- Frontend Angular hospedado na Vercel (CDN global, TLS 1.3)
- Backend Supabase (Postgres 15 + Edge Functions Deno)
- Storage Cloudflare R2 (compatível S3, região ENAM)
- Backup mirror Backblaze B2 (S3-compatible, região EU-Central-003 / Amsterdã)
- Pagamentos Asaas (PCI-DSS Nível 1, certificado por auditoria externa)
Multi-tenant isolation
- Row Level Security (RLS) ativado em todas as tabelas com dado de cliente
- Política padrão:
tenant_id = auth.uid()comSECURITY DEFINERem funções helper - Edge Functions de I/O com storage executam verificação dupla de tenant antes de qualquer delete
Backup
- Supabase Pro: backup diário automatizado, 7 dias de retenção
- Cloudflare R2: Bucket Lock 7 dias (proteção contra deleção em massa)
- Backblaze B2: Object Lock COMPLIANCE 7 dias por objeto + bucket flag
- Worker de espelhamento incremental diário (cron 05:00 UTC), Bandwidth Alliance (sem custo de egress)
Auth
- Supabase Auth (GoTrue) com
bcrypt+ JWT RS256 - Cookies cross-domain
app.leint.com.br↔leint.com.brcomSameSite=Lax; Secure; HttpOnly - Sessões com refresh token rotation
- 2FA obrigatório em todos os painéis administrativos (Supabase, GitHub, Vercel, Cloudflare, Backblaze, Brevo)
Pagamentos
- Asaas (gateway PCI-DSS Nível 1) — dados de cartão não são armazenados pela Leint
Em desenvolvimento
- Soft delete + lixeira (30 dias)
- Export massivo em um clique
- Excluir conta na UI
- Trilha de auditoria consolidada
- 2FA opcional para clientes
Esta página foi escrita em 5 de maio de 2026 e é revisada a cada nova entrega de segurança ou trimestralmente, o que vier primeiro.
Equipe Leint