Voltar ao blog

O Cabeçalho Sec-GPC Agora Está em Todo Lugar: Detecção no Servidor para Analytics

O Global Privacy Control chega como o cabeçalho de requisição Sec-GPC em todas as requisições. Veja como lê-lo na edge e respeitá-lo em um pipeline de analytics sem cookies.

O Global Privacy Control (GPC) é frequentemente discutido como um sinal jurídico, mas para quem programa ele é, antes de tudo, um cabeçalho HTTP. Toda requisição vinda de um navegador ou extensão com GPC habilitado carrega Sec-GPC: 1, e a mesma preferência é exposta ao JavaScript do cliente como navigator.globalPrivacyControl. Se você roda analytics na edge, o cabeçalho é o ponto de integração mais limpo — você pode agir sobre ele antes de qualquer lógica de medição rodar, sem enviar um único byte de código de rastreamento.

Como o sinal realmente se apresenta

A especificação do GPC define um campo de cabeçalho de requisição, Sec-GPC, cujo único valor significativo é 1, indicando que a pessoa não consente com a venda ou o compartilhamento dos seus dados pessoais. A ausência do cabeçalho significa que nenhuma preferência foi expressa — e isso explicitamente não é o mesmo que um 0 positivo. A especificação também define um recurso conhecido em /.well-known/gpc.json que um site publica para declarar que respeita o sinal.

Como Sec-GPC usa o prefixo Sec-, ele é um nome de cabeçalho proibido: não pode ser definido nem sobrescrito por fetch() ou XMLHttpRequest, o que o torna mais difícil de falsificar a partir de scripts da página do que um cabeçalho personalizado. Ele é enviado tanto em navegações quanto em requisições de sub-recursos, então um worker na edge o vê já no primeiro acesso.

Lendo o cabeçalho na edge da Cloudflare

Em um Cloudflare Worker a verificação é uma única linha, e ela roda antes de você decidir se vai registrar qualquer coisa:

export default {
  async fetch(request) {
    const gpc = request.headers.get('Sec-GPC') === '1';
    // gpc === true -> pessoa optou por não permitir venda/compartilhamento
    // registre apenas sinais agregados e seguros para a privacidade
    return handle(request, { gpc });
  }
};

Para o Monoid isso se encaixa diretamente na forma como o produto já funciona. O Monoid não armazena cookies, não usa localStorage e não deriva nenhuma impressão digital, então não existe perfil entre sites a ser suprimido em primeiro lugar. O GPC é uma recusa jurídica à venda e ao compartilhamento de dados pessoais — comportamento em que um design sem cookies e com foco em privacidade nunca se envolve. Detectar Sec-GPC torna-se, portanto, uma medida de defesa em profundidade e um registro auditável de que a preferência foi observada, em vez de um interruptor que muda quais dados saem do navegador.

Por que isso importa juridicamente, em poucas palavras

A exigibilidade do GPC não é teórica. O acordo de 2022 do Procurador-Geral da Califórnia com a Sephora deixou claro que a CCPA exige que empresas tratem o GPC como uma recusa válida de venda, e as regulamentações da California Privacy Rights Act exigem que sinais de preferência de opt-out sejam respeitados. O Colorado e outros regimes estaduais dos EUA adotaram exigências comparáveis de mecanismos universais de opt-out. Ler o cabeçalho no servidor lhe dá um ponto determinístico e registrado em que a conformidade acontece — muito mais robusto do que depender de um gerenciador de tags para disparar uma regra.

Publicando o recurso conhecido

Se você respeita o GPC, declare isso. Sirva /.well-known/gpc.json com um documento pequeno:

{ "gpc": true, "lastUpdate": "2026-07-19" }

É um arquivo estático que você pode retornar de uma rota na edge com Content-Type: application/json. Ele sinaliza a navegadores, extensões e auditores que a preferência é respeitada, e não custa nada manter.

Orientações práticas para pipelines de analytics

  • Verifique o cabeçalho antes da medição, não depois. Agir na edge significa que a decisão é tomada antes de qualquer processamento posterior.
  • Não trate a ausência como consentimento. Nenhum cabeçalho Sec-GPC significa simplesmente nenhuma preferência; combine isso com a sua base legal existente.
  • Mantenha uma trilha de auditoria mínima. Registrar que uma requisição carregava Sec-GPC: 1 — sem vinculá-la a um identificador — demonstra boa-fé sem criar um perfil.
  • Prefira o cabeçalho à API JS para bloqueio. A propriedade navigator.globalPrivacyControl é útil para a interface no cliente, mas o cabeçalho permite decidir antes de qualquer código rodar.

A lição mais ampla é que sinais de privacidade são cada vez mais fatos da camada de transporte, não peculiaridades de aplicação. O Sec-GPC está ao lado do DNT (obsoleto), do cabeçalho Permissions-Policy e do Referrer-Policy como algo que um sistema de analytics deveria ler em vez de ignorar. Para um produto sem cookies a mudança é pequena precisamente porque a arquitetura já minimiza dados — que é justamente o ponto de construir dessa forma desde o início.

Sources

Comments

Loading comments…