Arquitetura e segurança
Especificação técnica para revisão de segurança, avaliação de compliance e questionário de fornecedor.
Descreve a arquitetura e os controles técnicos da plataforma no nível necessário para avaliação de segurança e de conformidade. Detalhes de implementação, identificação de fornecedores e sub-processadores, e especificação das rotas internas são fornecidos ao contratante sob o contrato e, quando aplicável, sob acordo de confidencialidade — inclusive para atender auditoria formal.
Camadas#
Cliente
JavaScript ES5 sem dependências, ≈7 KB comprimido, carregado com
defer. Executa no navegador do visitante: lê parâmetros da URL, grava
cookies de primeira parte e envia eventos.
Aplicação
API REST sobre HTTPS. Serve a configuração da campanha, recebe os eventos e autentica o postback server-to-server por token.
Persistência
Banco relacional com chave única de deduplicação e índices por campanha, origem e data. Remoção automática por idade do registro.
Fluxo de dados#
| Etapa | O que trafega | Sentido |
|---|---|---|
| Carregamento da tag | Identificador da campanha, na própria URL do script | Navegador → plataforma |
| Configuração da campanha | Parâmetros de comportamento da campanha. Nenhum dado de visitante, nenhum segredo | Plataforma → navegador |
| Registro do acesso | Identificador de clique, origem, referrer, parâmetros de campanha, agente do navegador | Navegador → plataforma |
| Registro da conversão | Identificador de clique, identificador da transação, valor | Navegador → plataforma |
| Postback server-to-server | Identificador de clique, identificador da transação, valor, token da campanha | Servidor do anunciante → plataforma |
| Encaminhamento a plataformas de mídia | Identificador de clique, identificador da transação, valor, conforme exigido por cada plataforma contratada | Navegador ou plataforma → plataforma de mídia |
Dados armazenados#
No servidor, por evento#
| Campo | Natureza | Observação |
|---|---|---|
| Campanha | Operacional | Identificador e nome interno |
| Tipo do evento | Operacional | Acesso ou conversão |
| Identificador de clique | Pseudonimizado | Reidentificável pela plataforma de mídia que o originou |
| Identificador da transação | Pseudonimizado | Reidentificável pelo anunciante em seu sistema |
| Valor da conversão | Comercial | Duas casas decimais |
| Origem do tráfego | Técnico | Publisher ou canal |
| Referrer | Técnico | Até 500 caracteres |
| Agente do navegador | Técnico | Até 255 caracteres. Pode contribuir para identificação por fingerprint |
| Hash do endereço IP | Pseudonimizado | SHA-256 do IP combinado com sal do site. O endereço não é armazenado |
| Identificadores de sessão e dispositivo | Pseudonimizado | Somente quando a campanha os utiliza |
| Parâmetros de campanha | Pseudonimizado | Lista de permissão fechada — ver abaixo |
| Data e hora | Técnico | — |
Nome, e-mail, telefone, CPF, endereço, dados de pagamento, conteúdo do carrinho e endereço IP em forma legível. A plataforma não recebe esses dados do anunciante e não tem meio de obtê-los.
No navegador#
Cookies de primeira parte com os identificadores recebidos na URL, e duas marcas técnicas de controle que não contêm dado do visitante. Detalhamento completo em cookies gravados.
Controles de segurança#
Endereço IP em hash
O IP é convertido em hash SHA-256 com sal específico do site antes de qualquer gravação. O valor original não é persistido e não é recuperável a partir do hash.
Lista de permissão de parâmetros
Dos parâmetros de URL, só são preservados os de campanha (prefixo utm_)
e uma lista fechada de identificadores de plataforma de anúncios. Qualquer outro é
descartado na entrada — dado pessoal colocado na URL por engano não é armazenado.
Limites de tamanho na entrada
Todo campo tem tamanho máximo aplicado na entrada, com sanitização de texto. Evita injeção por campo longo e limita o volume gravado por requisição.
Deduplicação em banco
Chave única sobre tipo do evento, identificador de clique e identificador da transação. Requisição repetida é aceita e descartada silenciosamente, o que torna o reenvio seguro e impede inflar contagem por repetição.
Filtro de automação
Acessos com agente identificado como robô, rastreador ou monitor não são registrados. Não se aplica a conversões, para não descartar evento legítimo de cliente com agente atípico.
Token por campanha, em tempo constante
O postback é autenticado por token exclusivo da campanha, comparado em tempo constante. Token inválido, ausente e campanha inexistente produzem resposta idêntica, sem revelar quais campanhas existem.
Escopo da resposta pública
As rotas chamadas pelo navegador não aceitam credencial e não expõem segredo. O token de postback nunca aparece em qualquer resposta da API.
Cookies restritos
Somente cookies de primeira parte, com SameSite=Lax e
Secure em HTTPS. Nenhum cookie de terceiro é utilizado.
Validação de redirecionamento
URLs de redirecionamento configuradas na campanha são validadas antes do uso, e esquemas de execução de script são recusados — impede que uma configuração incorreta se torne vetor de execução no navegador do visitante.
Falha fechada
Erro em qualquer etapa resulta em não registrar, nunca em registrar dado incorreto ou em quebrar a página do anunciante. Ver como funciona.
Cabeçalhos de resposta#
| Rota | Cabeçalhos |
|---|---|
| Tag | Cache-Control: public, max-age=300, must-revalidate, ETag, Access-Control-Allow-Origin: * |
| Registro de evento | Cache-Control: no-store, Access-Control-Allow-Origin: * |
| Postback | Cache-Control: no-store |
Retenção e remoção#
| Dado | Retenção | Mecanismo de remoção |
|---|---|---|
| Eventos de acesso e conversão | 30 dias | Rotina diária automática por idade do registro |
| Cookies no navegador | Janela da campanha: padrão 30 dias, máximo 365 | Expiração pelo navegador |
| Cache de geolocalização | 24 h para acerto, 10 min para falha | Expiração automática |
| Marcas técnicas no navegador | Sessão, ou até limpeza pelo usuário | Limpeza de dados do navegador |
| Configuração de campanha | Enquanto a campanha existir | Exclusão pelo operador |
Sub-processadores e terceiros#
A plataforma envolve terceiros em três funções. A identificação de cada fornecedor, a localização do tratamento e os acordos de tratamento de dados correspondentes são fornecidos ao contratante sob o contrato.
| Função | Dado envolvido | Quando ocorre |
|---|---|---|
| Infraestrutura de hospedagem | Todos os dados armazenados | Permanente |
| Plataformas de mídia contratadas | Identificador de clique, identificador da transação, valor | Na conversão, conforme a campanha |
| Geolocalização por IP (serviço externo de reserva) | Endereço IP do visitante | Somente em campanhas com regra de cidade, e somente quando a base local não resolve. Ver geolocalização |
A geolocalização por serviço externo pode caracterizar transferência internacional de dados. Campanhas que não usam regra de cidade não acionam esse caminho. Anunciantes com restrição a transferência internacional devem sinalizar ao time Moclick para que as campanhas sejam configuradas em conformidade.
Limitações conhecidas#
Declaradas explicitamente porque afetam a interpretação dos dados e costumam ser objeto de questionário técnico:
- Execução no navegador do visitante. Sendo JavaScript client-side, é tecnicamente possível a terceiros modificar, bloquear ou impedir sua execução. Bloqueadores de script impedem a medição sem qualquer sinal de erro.
- Dependência de cookie de primeira parte. Limpeza de cookies pelo usuário, navegação anônima ou conversão em dispositivo distinto interrompem a atribuição.
- Impressões e custo no painel são estimados, não medidos — ver indicadores.
- Janela de observação de 120 segundos para a detecção da conversão em aplicações de página única.
- Sem verificação de consentimento na tag. A tag não consulta plataforma de consentimento por conta própria. Sites que operam com gestão de consentimento devem condicionar o carregamento da tag à categoria correspondente.
- Divergência esperada com relatórios de plataformas externas, por diferença de modelo de atribuição, janela e critério de deduplicação.
Continuidade e disponibilidade#
Indisponibilidade da plataforma não afeta o site do anunciante: a tag falha em silêncio e a página segue funcionando normalmente. O efeito é conversão não registrada no período, sem erro visível ao visitante.
Compromissos de disponibilidade, procedimento de backup, plano de recuperação e resposta a incidente constam no contrato e podem ser detalhados para avaliação de fornecedor sob solicitação.
Revisão#
Este documento é revisado a cada alteração relevante de arquitetura ou de tratamento de dados. Mudanças que afetem comportamento observável são registradas em changelog. Para questionário de segurança, avaliação de fornecedor ou solicitação de documentação complementar, procure o time Moclick.