Lógica reversa



O que é agente de usuário


O User Agent do navegador é uma sequência de dados enviada pelo navegador ao site durante a conexão, que contém informações sobre a plataforma (sistema operacional) usada, arquitetura e a versão do navegador usado.

A idéia é bastante positiva se usada corretamente - o User Agent permite que o site forneça o máximo de oportunidades para o usuário, de acordo com os recursos do navegador. Por exemplo, se for um site com software, ele pode oferecer a versão apropriada dos arquivos de instalação para download, ou se forem páginas de ajuda para configurar um navegador, o usuário receberá as etapas apropriadas para seu navegador.

Qual é o problema?


Tudo isso parece maravilhoso até que alguns desenvolvedores da Web habilidosos confundam algo com a definição de User Agent ou, muito pior, alguma grande empresa não deseja usar essa tecnologia para fins competitivos.

Recebemos muitas mensagens de erro que não estão relacionadas à operação do código do navegador. Às vezes, o Vivaldi é bloqueado, sua versão não é detectada corretamente, todos os tipos de avisos são mostrados ao usuário - e tudo isso está conectado ao agente do usuário.

Às vezes, situações mais estúpidas ocorrem quando, por exemplo, os desenvolvedores de um site decidem subitamente que apenas navegadores testados pessoalmente pelos autores do site têm o direito de trabalhar com suas páginas e todos os outros são injustificadamente privados desse direito. Tais decisões contradizem a própria idéia de abertura da Internet para todos e levam a um fortalecimento ainda maior das posições dos principais players no mercado de navegadores, retornando assim à era da pedra da Internet. E, para ser sincero, esse é um erro muito comum dos desenvolvedores da web. Portanto, quase todos os navegadores contêm em seu User Agent não apenas informações sobre si mesmos, mas também sobre todos os navegadores mais ou menos populares. Veja o agente do usuário do navegador Vivaldi para Linux x64 - é algo parecido com isto:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.99 Safari/537.36 Vivaldi/2.9.1705.41 

A maior parte dessa linha é herdada do projeto Chromium, que por sua vez herdou o código do Safari e assim por diante. Apesar de um truque tão enganador, ele funciona na maioria dos casos, como se você se apresentasse como um estranho, você pode entrar em um clube particular. Se você se nomear corretamente, todas as portas estarão abertas para você!

Além de listar os nomes que o ajudarão a entrar no clube dos seus favoritos, você também precisará evitar o erro inverso - usando nomes que criarão problemas para você. Dê uma olhada no User Agent da versão moderna do Opera ou no navegador Edge baseado no Chromium. Eles não querem ser confundidos com encarnações passadas; portanto, não correm o risco de escrever seu nome corretamente no User Agent, preferindo ser chamados de aliases "OPR" e "EDG", respectivamente. É claro que os usuários costumam enviar mensagens sobre esse erro, mas na verdade isso não é um bug, mas um recurso.

Bem, suponha que os casos acima possam ser atribuídos aos "erros" prolongados. Mas há situações mais desagradáveis. Muitas vezes, encontramos sites que bloqueiam nosso navegador quando veem a palavra Vivaldi no User Agent, sem nos notificar de nenhum problema. Às vezes, esses truques tecnológicos são usados ​​por pesos pesados ​​tecnológicos, com os navegadores dos quais competimos. Quando esse bloqueio ocorre e o usuário vê uma mensagem de erro padrão sobre o acesso ao site, ou se alguma cópia defeituosa do site é enviada ao navegador, o usuário geralmente considera o navegador Vivaldi culpado. É estranho pensar que alguém possa interferir deliberadamente no navegador! Enquanto isso, vale a pena alterar o texto com o nome do navegador para o incorreto no User Agent, como "Vivaldo" ou "Vxvaldi", e tudo começa a funcionar magicamente. Nesse caso, precisamos adicionar patches ao código (não os chame de "correções"), que resolvem esse problema.

Temos vários exemplos desse comportamento:

  • No Google.com.br, se você usar o Vivaldi no agente do usuário e vir após o redirecionamento, o campo de pesquisa na página será deslocado para baixo
  • No Google Docs, você recebe um aviso se fizer login como Vivaldi
  • Na interface da Web do WhatsApp Facebook com o nome Vivaldi no User Agent, você não poderá visitar o site e será oferecido o uso de um navegador diferente
  • O site do Microsoft Teams (bate-papo e colaboração ao vivo) com o nome Vivaldi não permitirá que você use o site incrível

Você também pode experimentar qualquer navegador disponível, substituindo o nome Vivaldi no User Agent e tentando trabalhar com sites semelhantes.

Em todos esses casos, tentamos naturalmente entrar em contato com essas empresas para pedir mais respeito por nossos usuários. Por exemplo, aqui está o nosso tweet para o projeto WhatsApp sobre um problema descoberto há quatro anos. Além disso, não apenas nós, mas também nossos usuários, sinalizamos repetidamente nos últimos anos. Sem sucesso.

Cortando uma dor de cabeça


Em geral, estamos cansados ​​disso e no próximo lançamento do Vivaldi decidimos tomar medidas radicais. Considerando que a Internet tende ao infinito, fisicamente não podemos verificar absolutamente todos os sites quanto à questão de bloquear o Vivaldi. Assim, a criação de listas de sites para os quais somos “não-Vivaldi” não é uma opção. Em vez disso, decidimos reverter. Para alguns sites que respeitamos (e respeitamos), apresentaremos nosso nome completo e honesto Vivaldi e, para todos os outros, fingiremos que somos "Chrome". A propósito, entre nossos amigos, também incluímos recursos como duckduckgo.com , ecosia.org , qwant.com , startpage.com .

Existem sérias desvantagens nesta decisão. Em particular, corremos o risco de desaparecer das estatísticas de uso do navegador coletadas pelos medidores da Internet e sites individuais. Mas para nós, a conveniência de nossos usuários é mais importante do que a aparente popularidade.

PS Há boas notícias - no momento, estamos considerando uma maneira de resolver o problema com o User Agent .

Foto usada por Braydon Anderson

Source: https://habr.com/ru/post/pt479620/


All Articles