Anti-quishing do lado do emissor. Residência de dados do lado do armazenamento.
Cada link Pro passa por um pipeline anti-quishing de sete camadas no momento da emissão, em cada alteração de destino e em verificações periódicas contínuas. O log de scan contém apenas país e classe de dispositivo, sem IP, sem user agent, sem cookie, sem perfil comportamental a vazar. D1 de região única está disponível no Agency e Custom Enterprise.
Dados que coletamos
Cada byte que chega aos nossos servidores está em um de quatro grupos:
Dados de conta
E-mail, nível do plano, status do plano, IDs de cliente + assinatura do Stripe, nome de time + rótulo de workspace opcionais. Só isso. Sem telefone, sem endereço (endereço de faturamento fica no Stripe), sem perfil comportamental.
Dados de código
A URL de destino, um shortcode Base58 de 7 caracteres, um rótulo + tags que você define, design de QR opcional (cores / logo / moldura), portão de senha opcional, agendamento opcional. De sua propriedade; exportável como CSV a qualquer momento.
Dados de scan
Bucket de dia UTC + país (de CF-IPCountry) + classe de dispositivo (mobile / tablet / desktop / unknown). O User-Agent bruto é descartado imediatamente após a classificação. IP nunca entra no banco de dados. Armazenado em cache no KV para o caminho de redirecionamento, agregado no D1 via ctx.waitUntil. Agregados de país abaixo de 5 scans são agrupados em "Other" para impedir a re-identificação.
Metadados de auditoria / faturamento
Log append-only de mutações (quem fez o quê, quando, em qual escopo), retenção de 180 dias. Eventos de webhook do Stripe deduplicados para idempotência, sem PII do cliente além do ID de cliente do Stripe. Log de solicitações GDPR (exportar / excluir / restaurar), mantido após a exclusão da conta como prova de cumprimento no prazo.
Para o esquema completo, veja docs/SCHEMA.md em nosso repositório de código; cada coluna está documentada com uma política de retenção.
Onde os dados ficam
| Superfície | Provedor | Região | Opção de região única? |
|---|---|---|---|
| Dashboard + API | Cloudflare Pages Functions | Borda global (PoP mais próximo) | Sim, somente Agency+ |
| Registros de código (D1) | Cloudflare D1 (SQLite) | Região primária atribuída no provisionamento (hoje: ENAM) | Sim, shard por tenant Agency+ |
| Caminho de redirecionamento (KV) | Cloudflare Workers KV | Replicado globalmente para <50ms p99 | Não disponível (a replicação é o produto) |
| Backups criptografados | Cloudflare R2 | Região primária atribuída na criação do bucket | Sim, bucket jurisdicional EU / APAC sob demanda |
| Pagamentos | Stripe | US, tratamento regional de PII via residência própria do Stripe | Via contrato Stripe |
| E-mail transacional | ZeptoMail (Zoho) | IN (região EU do Zoho disponível sob demanda) | Sim, região EU do Zoho |
O que atravessa fronteiras, exatamente
- Scans nunca atravessam fronteiras de forma com perda. Um scan de Lisboa atinge o PoP do Cloudflare em Lisboa, o worker escreve dia/país/dispositivo no KV na borda e agrega de forma assíncrona no D1 em sua região primária. O IP do scanner original vive no estado efêmero de requisição do Cloudflare durante a requisição HTTP e nunca é persistido em nosso banco de dados.
- Requisições do dashboard terminam no PoP Cloudflare mais próximo e chamam o D1 pela rede privada do Cloudflare. Nossas Pages Functions leem/escrevem no D1 em sua região atribuída; o PoP de borda serve o bundle HTML + JS a partir do cache global de ativos estáticos.
- Webhooks do Stripe atravessam a fronteira uma vez, o Stripe (US) faz POST para nosso endpoint do Cloudflare Pages, que verifica o HMAC, escreve uma linha mínima (event_id, type) para idempotência e despacha eventos downstream.
- E-mail transacional (Zepto) atravessa a fronteira uma vez por envio, nosso worker entrega um template renderizado para a API do Zepto; o Zepto entrega ao servidor de e-mail do destinatário. O conteúdo são links de convite, notificações de ciclo de vida de faturamento e alertas de limite de scan, sem dados de scan do cliente.
Pipeline anti-quishing
O phishing via QR cresceu 146% no primeiro trimestre de 2026. O fornecedor padrão de links curtos reage após uma reclamação de cliente. Verificamos cada link no momento da emissão, cada vez que o destino é alterado do nosso lado e em verificações periódicas contínuas, porque um cliente pode redirecionar seu próprio URL no seu próprio servidor sem nunca chamar nossa API. O mesmo pipeline de inteligência contra ameaças que alimenta nosso scanner público em check.qr.abundera.ai é executado em cada link que emitimos.
Sete camadas de detecção, cada uma com um pedido de patente nos EUA em andamento. Cada camada alimenta um veredicto unificado; um positivo em qualquer uma pode bloquear uma criação, recusar uma alteração de destino ou suspender um link já ativo.
| Camada | O que detecta | Quando executa |
|---|---|---|
| Mutabilidade da cadeia de redirecionamento | Quantas partes independentes controlam o caminho entre nosso link curto e a página final. Uma cadeia de dois saltos por um redirecionador de terceiros representa uma classe de risco diferente de um destino direto. | Criação, alteração de destino, reverificação periódica |
| Análise de payload multimodal | WiFi, contato, telefonia, e-mail, calendário, geolocalização, criptomoeda, intent Android e payloads de dados inline recebem cada um um analisador específico por tipo. Esquemas bloqueados de forma permanente são recusados no envio. | Criação, alteração de destino |
| Cloaking crawler vs. navegador | Páginas que exibem conteúdo limpo para scanners e phishing para humanos. Detectado por buscas paralelas com variação controlada de fingerprint e uma pontuação de divergência. | Criação, reverificação periódica |
| Mutabilidade do servidor de destino | Domínios recém-registrados, certificados novos, TLDs de alta rotatividade, ausência de HSTS e degradação de esquema de transporte. Independente da cadeia de redirecionamento; uma cadeia estática de um salto para um certificado de seis dias em um TLD suspeito ainda é sinalizada. | Criação, alteração de destino, reverificação periódica |
| Proveniência de instância física | Ledger de hashes colaborativo indexado por payload decodificado. Um único QR escaneado em muitas regiões distintas em pouco tempo aparece como candidato a ataque de sticker. Cada link que emitimos recebe uma entrada de proveniência limpa na criação, para que ataques de sobreposição em códigos Pro legítimos sejam detectados. | Contínuo |
| Divergência de marca visual | Se um código carrega um logotipo de marca cujo conjunto de domínios canônicos não inclui o destino decodificado, o código é considerado divergente da marca. Aplica-se a todos os códigos Pro que usam nosso recurso de logo centralizado; um phisher não pode criar um código com o logo do Chase apontando para um domínio não-Chase. | Criação, alteração de logo, alteração de destino |
| Topologia de sensor / local | Para códigos vinculados a locais (parquímetros, check-in de hotel, cardápios de restaurante, exposições de museus), o contexto RF ambiente do dispositivo de scan é verificado em relação à topologia registrada para aquele local. Uma divergência gera anomalia de contexto de sensor mesmo no primeiro scan de um sticker fraudulento. Plano Enterprise; o operador do local registra a topologia esperada na criação do código. | A cada scan |
O problema da alteração do lado do cliente
A URL de destino de um link Pro fica no servidor do cliente, não no nosso. O cliente pode redirecionar example.com/promo de uma promoção real para uma página de phishing sem nunca chamar a API da Abundera. Tratamos isso como o principal vetor de abuso, não um caso extremo. Reverificações periódicas em destinos ativos rodam em agendamento, e nossa camada de detecção de cloaking visa especificamente páginas que mudam após o envio. Quando um destino começa a falhar nas verificações após a criação, o link é pausado automaticamente, o proprietário recebe um e-mail com o veredicto específico e o evento é registrado na trilha de auditoria.
Falsos positivos e recursos
Inteligência contra ameaças erra às vezes. Uma marca legítima em um certificado recém-emitido, uma promoção real cuja página mudou legitimamente, um domínio migrado. Cada bloqueio e cada pausa automática inclui a camada de veredicto específica que disparou, a entrada que a acionou e um recurso de um clique que escala para um humano em até um dia útil. Preferimos pausar a excluir; um link pausado pode ser reativado em segundos após a aprovação do recurso.
Residência de região única (Agency+ e Custom Enterprise)
Para compradores exclusivos de UE ou APAC, clientes do nível Agency podem solicitar:
- D1 colocado em uma única jurisdição (UE: EEUR ou WEUR; APAC: APAC). O Cloudflare respeita uma dica de
locationna criação do banco de dados; criamos um shard D1 por tenant na região solicitada (ADR-0010). - Bucket R2 na mesma jurisdição, backups noturnos criptografados D1 → R2 caem na região correspondente.
- Região EU do Zepto para e-mail transacional, configurado no nível do serviço, sem alteração de código.
- KV permanece global, a replicação na borda é essencial para a garantia de redirecionamento <50ms. Se o KV de região única for um requisito rígido, fale conosco; podemos avaliar se uma variante de Worker somente regional é viável para sua campanha.
O preço do complemento de região única é fixo (sem acréscimo por assento) e depende da combinação específica. Envie e-mail para enterprise@abundera.ai com sua jurisdição alvo + volume de scans projetado e faremos uma cotação.
Postura de conformidade
- GDPR, dados mínimos por design (apenas país + classe de dispositivo, sem IP, sem UA, sem cookies) mais exportação com um clique e exclusão definitiva em 30 dias. DPA + SCCs da UE disponíveis para todos os planos pagos.
- CCPA, coberto pela mesma interface de exportação + exclusão. "Venda de dados" não é algo que fazemos: sem compartilhamento com terceiros, sem parceiros de anúncios, sem retargeting.
- SSO + provisionamento SCIM, SAML 2.0 + OIDC single sign-on e ciclo de vida de usuário & grupo SCIM 2.0 (planos Agency + Custom Enterprise). Conformidade RFC 7643/7644 verificada (20/20 no conjunto de testes derivado do PingIdentity). Flag de recurso por conexão significa que o SCIM está desligado por padrão e habilitado por cliente; limitado a 50 RPS por token; registrado em auditoria. Okta/Entra/JumpCloud funcionam hoje como aplicativos SCIM personalizados enquanto os registros no catálogo de parceiros estão em andamento.
- SOC 2 Tipo II, em escopo. Processo de 6-9 meses. Se este é um requisito rígido para você, envie e-mail para enterprise@abundera.ai; podemos compartilhar o status atual + cronograma projetado.
- PCI-DSS, fora do escopo para nós diretamente; pagamentos gerenciados de ponta a ponta pelo Stripe (certificado PCI Nível 1).
Divulgação de vulnerabilidades
Encontrou uma vulnerabilidade? E-mail security@abundera.ai. Divulgação coordenada, confirmaremos o recebimento em 24h (dias úteis), realizaremos triagem em 72h e coordenaremos um cronograma de correção + divulgação com você. Sem programa de bug bounty ainda; agradecemos pesquisadores publicamente em abundera.ai/security/thanks/ quando uma correção é lançada.