O que é falsificação de user-agent
Todo cliente de HTTP pode enviar um cabeçalho User-Agent header que se descreve: nome e versão de um navegador, nome de um crawler, identificador de uma biblioteca. O cabeçalho é auto declaratório. Nada em HTTP verifica se isso é verdadeiro, então qualquer cliente pode enviar qualquer valor. Falsificação de user-agent é a prática de enviar um valor que deturpa o cliente, por exemplo:
- um script de automação se apresentando como um navegador de desktop atual,
- um scraper alegando ser um crawler de busca conhecido para obter tratamento favorável,
- um agente de AI usando uma string genérica de navegador para ser tratado como uma pessoa.
Por que isso importa
Muitos sistemas ainda tomam decisões com base na string user-agent: allowlisting de crawlers conhecidos, entrega de conteúdo diferente para bots ou exclusão de automação de analytics. Cada uma dessas decisões herda a fragilidade do cabeçalho. Se uma policy diz "allow anything that claims to be crawler X", ela permite qualquer pessoa que copie a string do crawler X.
Para aplicações que recebem tráfego de agentes de AI, isso importa mais com o tempo. Os agentes estão cada vez mais rodando dentro de navegadores reais ou de frameworks de navegador headless, então suas strings de user-agent parecem exatamente com as de navegadores humanos. Outros se identificam honestamente. O cabeçalho sozinho não consegue dizer qual é qual. Nosso texto sobre como saber se o tráfego de site vem de agentes de AI analisa os sinais que funcionam melhor.
Evidência melhor do que o cabeçalho
- Assinaturas criptográficas. Com HTTP Message Signatures e o trabalho Web Bot Auth, um cliente prova que possui uma chave publicada pelo operador que ele nomeia. Uma string de user-agent copiada não consegue reproduzir uma assinatura.
- Verificação publicada pelo operador. Alguns operadores de crawler publicam faixas de IP ou oferecem checagens de reverse DNS, o que dificulta mais a personificação do que o cabeçalho sozinho. O Google documenta uma checagem de reverse DNS e faixa de IP para seus crawlers, a Microsoft oferece a ferramenta Verify Bingbot, e a OpenAI publica arquivos de endereços IP para cada um de seus bots. A orientação da Anthropic para seu agente de navegador hospedado diz claramente que qualquer pessoa pode enviar o mesmo cabeçalho User-Agent e recomenda verificar os endereços IP publicados.
- Checagens de consistência. Comparar o cliente alegado com detalhes de protocolo e sinais de interação pode mostrar quando uma alegação não se encaixa, embora isso produza inferência, não prova.
- Credenciais. Para APIs, uma API key ou token informa qual conta está chamando, independentemente do que o cabeçalho diz.
Equívocos comuns
- "Um user-agent de navegador significa uma pessoa." Navegadores headless e frameworks de agentes enviam strings de navegador com frequência.
- "Um user-agent de crawler significa o crawler." Sem uma assinatura ou uma checagem de verificação do operador, isso é apenas uma alegação.
- "Falsificação é sempre maliciosa." Algumas ferramentas legítimas enviam strings genéricas para evitar a entrega de páginas quebradas. A falsificação é um motivo para descontar o cabeçalho, não prova de má intenção.
Como Proof of Actor trata a string user-agent
Proof of Actor registra uma alegação de user-agent como evidência Declared: algo que o cliente declarou e que pode ou não ser verdadeiro. Ele nunca eleva uma declaração para Verified por conta própria. Uma requisição cuja única evidência de identificação seja uma string de user-agent de crawler é rotulada de forma correspondente e, quando a evidência é insuficiente, o resultado é Unknown em vez de um palpite confiante. Suas policies em Route podem então tratar de forma diferente um agente assinado e verificado e um auto declarado, por exemplo permitindo ambos em rotas somente de leitura, mas aplicando limites mais rígidos ao declarado.
Veja como as bases de evidência funcionam ou solicite acesso antecipado.
Fontes
- RFC 9110: HTTP Semantics, User-Agent: o cabeçalho é auto declarado pelo cliente
- Google: Verifying Google's crawlers and fetchers: reverse DNS e checagens de faixa de IP publicadas
- Microsoft Bing: Verify Bingbot tool: verificação de se um endereço IP pertence ao Bingbot
- OpenAI: Overview of OpenAI Crawlers: user agents e arquivos de endereços IP publicados
- Anthropic: how Anthropic-hosted browsers identify themselves: aviso de que o cabeçalho User-Agent pode ser copiado