Skip to main content
Todos os Termos Glossary

Falsificacao de User-Agent

Definition

A falsificacao de User-Agent envolve modificar a string User-Agent que os navegadores enviam para se identificar aos servidores. Embora as vezes usada legitimamente para compatibilidade, tambem pode ser usada maliciosamente para contornar controles de seguranca ou falsificar diferentes navegadores. Aplicacoes nao devem depender unicamente de strings User-Agent para decisoes de seguranca.

Como funciona o spoofing de user-agent

Toda requisição HTTP feita por um navegador inclui um cabeçalho User-Agent, uma string que informa o navegador, sua versão, o mecanismo de renderização e o sistema operacional. O spoofing de user-agent significa alterar essa string para que o cliente afirme ser algo que não é, por exemplo, um celular se apresentando como um desktop, ou um script se apresentando como o Chrome. É trivial de fazer: as configurações de desenvolvedor do navegador, as extensões, os sinalizadores de linha de comando e as bibliotecas HTTP permitem definir um valor arbitrário, e o servidor não tem nenhuma forma nativa de verificá-lo. A mesma liberdade existe na propriedade JavaScript navigator.userAgent e nos mais recentes User-Agent Client Hints, que informam dados semelhantes de forma estruturada.

Por que isso importa

Como o User-Agent é autodeclarado e não verificado, tratá-lo como confiável é uma fonte recorrente de fragilidade. Bots maliciosos, scrapers e ferramentas de credential-stuffing costumam falsificar uma string de navegador comum para passar por filtros que bloqueiam por user-agent, ou para se passar por crawlers de mecanismos de busca. Os atacantes também fazem spoofing para sondar comportamentos específicos de versão ou para receber conteúdo destinado a outra plataforma. Do lado defensivo, o spoofing quebra qualquer controle que presuma que a string é precisa: as análises ficam distorcidas e as regras de segurança baseadas no User-Agent podem ser burladas por completo. A lição central é que um cliente pode afirmar ser qualquer coisa, então o cabeçalho deve orientar o comportamento, nunca autorizá-lo.

Como se defender e como a cside se relaciona com isso

Nunca tome uma decisão de segurança apenas com base no User-Agent. Em vez disso, corrobore-o com evidências mais difíceis de forjar: verifique as afirmações de crawlers de busca por DNS reverso, confira a ordenação de TLS e dos cabeçalhos, e compare o navegador declarado com as capacidades e o comportamento de renderização que ele realmente exibe. É aqui que a inteligência de dispositivo e a detecção de bots da cside ajudam: elas cruzam o user-agent declarado com muitos sinais independentes, de modo que uma requisição que afirma ser o Chrome de desktop, mas apresenta um fingerprint headless ou inconsistente, é sinalizada como falsificada. A detecção se apoia na incompatibilidade entre o que um cliente diz e o que ele demonstravelmente é, e não em confiar na string, que qualquer cliente pode reescrever em segundos.

Definição

Falsificar um user-agent é ilegal ou contra as regras?

Alterar o seu próprio user-agent é legal e comum; desenvolvedores fazem isso para testar sites e ferramentas de privacidade fazem isso para reduzir o rastreamento. Passa a ser um problema quando combinado com abuso, como burlar limites de taxa, se passar pelo Googlebot ou contornar controles de acesso, o que normalmente viola os termos de serviço de um site e, dependendo da intenção, outras leis.

Definição

Um servidor consegue detectar de forma confiável um user-agent falsificado?

Não a partir da string em si, mas muitas vezes a partir do contexto. Se uma requisição afirma ser o Safari no iOS, mas negocia um handshake TLS ou suporta APIs JavaScript que o Safari real não teria, a incompatibilidade revela o spoofing. A detecção confiável compara a identidade declarada com muitos sinais independentes e mais difíceis de falsificar.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Agende uma demonstração