Teste de origem de redução do user agent

A redução de user agent é um esforço para reduzir as superfícies de impressão digital passiva, reduzindo as informações na string User-Agent (UA) apenas para a marca e a versão significativa do navegador, a distinção entre computador e dispositivo móvel e a plataforma em execução. Atualmente, a string UA é compartilhada em cada solicitação HTTP e exposta em JavaScript para todos os recursos carregados pelo navegador. Ele contém informações importantes sobre o navegador, a plataforma em que ele está sendo executado e os recursos dele. Os User-Agent Client Hints (UA-CH, na sigla em inglês) podem fornecer as mesmas informações que a string completa do UA, permitindo que os sites solicitem apenas as informações do UA necessárias.

A partir do Chrome 95 Beta, vamos abrir o teste de origem para a redução do user agent para permitir que os sites ativem o recebimento da string UA reduzida. Isso vai permitir que os sites descubram e corrijam problemas antes que o UA reduzido se torne o comportamento padrão no Chrome. A redução está prevista para começar no segundo trimestre de 2022. Se você quiser testar o teste de origem em 95 usuários Beta antes do lançamento para a população estável, ative e teste antes da data de lançamento do Chrome 95 (atualmente programado para 19 de outubro de 2021).

Confira abaixo uma visão geral do teste de origem e o que esperar. Como sempre, agradecemos feedback ou problemas durante o teste no repositório do GitHub da redução do UA.

O que é o User-Agent?

A string User-Agent (UA) é compartilhada em cada solicitação HTTP e exposta em JavaScript para todos os recursos carregados pelo navegador. No momento, ele contém informações importantes sobre o navegador e a plataforma em que está sendo executado.

Por que o User-Agent está sendo reduzido?

A redução do user agent é um esforço para reduzir as superfícies de impressão digital passiva no navegador Chrome, anunciada pela primeira vez em janeiro de 2020. Ao reduzir as informações na string do UA apenas para a marca e a versão significativa do navegador, a distinção entre computador e dispositivo móvel e a plataforma em execução, fica mais difícil identificar usuários individuais.

O que isso significa para os desenvolvedores da Web?

Os sites precisam se preparar para receber strings do UA reduzidas e considerar a participação no teste de origem (detalhado abaixo). Os valores reduzidos do user agent vão aparecer em:

  • Cabeçalho da solicitação HTTP User-Agent
  • O getter navigator.userAgent do JavaScript
  • O getter navigator.platform do JavaScript
  • O getter navigator.appVersion do JavaScript

Para receber mais informações do cliente do que as compartilhadas pelo User-Agent reduzido, os sites vão precisar migrar para a nova API User-Agent Client Hints. Para mais detalhes sobre estratégias de migração, consulte Migrar para dicas de cliente do user agent.

Os planos de redução do User-Agent atualmente não incluem iOS e WebView. Portanto, essas plataformas vão continuar recebendo a string completa do user agent. O motivo principal é que essas plataformas ainda não implementaram as Dicas de cliente HTTP do user agent.

Como funciona o teste de origem?

Esse teste de origem é um pouco diferente do padrão. Os testes de origem padrão só podem controlar o comportamento na resposta. Por exemplo, controlar o acesso a uma API no Javascript da resposta. Neste teste, nosso objetivo é não apenas modificar a string UA fornecida nas APIs JavaScript, mas também modificar o cabeçalho User-Agent enviado na solicitação HTTP.

Para fazer isso, estamos definindo uma dica temporária do cliente, chamada Sec-CH-UA-Reduced, cuja presença em uma solicitação indica que o valor do cabeçalho User-Agent contém a string UA reduzida. A sugestão de cliente Sec-CH-UA-Reduced só será enviada (junto com a string reduzida do UA) se o token de teste de origem for válido e a sugestão de cliente Sec-CH-UA-Reduced não funcionar quando o teste de origem expirar. Lembre-se de que a primeira solicitação de navegação ainda vai receber a string User-Agent não reduzida, a menos que você defina o Critical-CH header.

As solicitações de subrecurso para a mesma origem vão enviar automaticamente a mesma string User-Agent da solicitação de nível superior enviada. As solicitações de subrecurso para origens de terceiros também vão enviar a mesma string User-Agent da solicitação de nível superior, incluindo a string UA reduzida se o token de teste de origem for válido, desde que a política de permissões permita.

Como participar do teste de origem da redução de user agent?

  1. Para se inscrever no teste de origem e receber um token para seus domínios, acesse a página do teste de redução do user agent.

  2. Atualize os cabeçalhos de resposta HTTP:

    1. Adicione Origin-Trial: <ORIGIN TRIAL TOKEN> ao cabeçalho de resposta HTTP, em que <ORIGIN TRIAL TOKEN> contém o token que você recebeu ao se registrar para o teste de origem.
    2. Adicione Accept-CH: Sec-CH-UA-Reduced ao cabeçalho de resposta HTTP.
    3. A configuração de Accept-CH só fará com que a string User-Agent reduzida seja enviada em solicitações subsequentes à origem. Para reenviar a primeira solicitação de navegação com a string User-Agent reduzida, adicione Critical-CH: Sec-CH-UA-Reduced ao cabeçalho de resposta HTTP, além dos cabeçalhos Accept-CH e Origin-Trial.
    4. Observação: se os cabeçalhos de resposta contiverem um token Origin-Trial válido e Accept-CH: Sec-CH-UA-Reduced, todas as solicitações de subrecurso (por exemplo, para imagens ou folhas de estilo) e subnavegação (por exemplo, iframes) vão enviar a string UA reduzida, mesmo que as origens dessas solicitações não estejam inscritas no teste de origem.
  3. Carregue seu site no Chrome M95 (ou mais recente) e comece a receber a string UA reduzida.

  4. Envie problemas ou feedback ao repositório do GitHub para a redução do UA.

  5. Consulte https://uar-ot.glitch.me/ para conferir uma demonstração simples do teste de origem (junto com o código-fonte).

Como participar do teste de origem como uma incorporação de terceiros?

A partir do Chrome 96, as incorporações de terceiros (por exemplo, um iframe dentro de outro site) podem participar do teste de origem sem que o site de nível superior precise ser registrado.

Para se inscrever como um embed de terceiros:

  1. Acesse o Teste de redução de user agent e clique em Registrar.
  2. Ao criar o token, marque a caixa de seleção Third-party matching.
  3. Para receber o cabeçalho User-Agent reduzido da incorporação de terceiros, atualize os cabeçalhos de resposta HTTP.
  4. Para receber a string User-Agent reduzida em APIs JavaScript, o token de teste precisa ser injetado pelo Javascript.

Alguns pontos importantes sobre a execução do teste de origem em incorporações de terceiros: + Critical-CH não pode ser especificado para incorporações de terceiros. Portanto, a primeira navegação não vai enviar a string UA reduzida, embora as solicitações de subrecurso da incorporação de terceiros enviem a string UA reduzida. + Se o teste de origem for validado para a origem de uma incorporação de terceiros, as solicitações subsequentes para a mesma origem em uma navegação de nível superior vão enviar a string UA reduzida. Por esse motivo, recomendamos aumentar a participação no teste de origem para solicitações de nível superior e incorporadas. + Se o user agent tiver desativado cookies de terceiros, o teste de origem não vai funcionar para o cabeçalho User-Agent em solicitações de incorporação de terceiros, embora as APIs do Javascript ainda recebam a string UA reduzida.

Como posso validar se o teste de origem está funcionando?

Para validar se o teste de origem está funcionando, examine os cabeçalhos de solicitação e verifique o seguinte:

  1. O cabeçalho User-Agent contém a versão reduzida. Consulte esta lista de exemplos de strings reduzidas do UA. Uma maneira fácil de saber é que a string da versão secundária do Chrome contém 0.0.0.
  2. O cabeçalho Sec-CH-UA-Reduced está definido como ?1.

Os cabeçalhos da resposta inicial que contêm o token de teste de origem devem ser semelhantes a este:

Cabeçalhos da resposta inicial que contêm o token de teste de origem.

Os cabeçalhos de solicitação subsequentes que contêm a string UA reduzida devem ser parecidos com este:

Cabeçalhos de solicitação subsequentes que contêm a string UA reduzida.

Como faço para deixar de participar do teste de origem de redução de user agent?

A qualquer momento durante o teste, você pode parar de participar e receber a string completa do User-Agent. Para parar de participar:

  1. Envie um cabeçalho Accept-CH na resposta HTTP que não inclua Sec-CH-UA-Reduced. Observação: Accept-CH com um valor vazio é uma maneira válida de fazer isso se o site não solicitar outras dicas do cliente.
  2. Remova o cabeçalho Origin-Trial do teste de redução de user agent da sua resposta HTTP.
  3. Se definido, remova Sec-CH-UA-Reduced do cabeçalho Critical-CH na resposta HTTP.

Qual é a duração do teste de origem?

O teste de origem da redução do UA vai durar pelo menos seis meses, o que corresponde a cerca de seis marcos do Chrome. O teste de origem vai aparecer no M95 e terminar no M101. Nesse ponto, o Chrome vai avaliar o feedback do teste de origem antes de enviar a string do user agent reduzida de forma faseada, de acordo com o plano de lançamento. Se um site precisar de mais tempo, ele poderá ativar um teste de origem de descontinuação subsequente, que permitirá o acesso à string UA completa por pelo menos mais seis meses. Publicaremos mais detalhes sobre o teste de descontinuação quando ele estiver pronto.

Como faço para compartilhar feedback sobre o teste de origem de redução de user agent?

Envie problemas ou feedback ao repositório do GitHub para a redução do UA.