Teste de origem de redução do user agent

A redução do user agent é um esforço para reduzir as superfícies de técnicas de impressão digital passivas, reduzindo as informações na string User-Agent (UA) apenas para a marca e a versão significativa do navegador, a distinção em relação ao computador ou dispositivo móvel e à plataforma em que ele está sendo executado. Atualmente, a string do UA é compartilhada em cada solicitação HTTP e exposta em JavaScript a todos os recursos carregados pelo navegador. Ele contém informações importantes sobre o navegador, a plataforma em que está sendo executado e os recursos dele. As dicas de cliente do user agent (UA-CH) podem fornecer as mesmas informações que a string completa do UA, permitindo que os sites solicitem apenas as informações do UA de que precisam.

A partir da versão Beta do Chrome 95, vamos abrir o teste de origem para Redução do user agent para permitir que os sites ativem o recebimento da string do UA reduzida agora. 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 o público estável, ative e teste o teste antes da data de lançamento do Chrome 95 (atualmente programada para 19 de outubro de 2021).

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

O que é o user agent?

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

Por que o user agent está sendo reduzido?

A redução de user agent é uma iniciativa 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 à marca e à versão significativa do navegador, à distinção para computadores ou dispositivos móveis e à plataforma em que ele está sendo executado, 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 de UA reduzidas e considerar a participação no teste de origem (detalhado abaixo). Os valores reduzidos de user agent aparecerão em:

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

Para receber mais informações do cliente do que as compartilhadas pelo user agent reduzido, os sites precisarão 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.

No momento, os planos de redução de user agent não incluem iOS e WebView. Portanto, essas plataformas continuarão recebendo a string completa do user agent. O principal motivo é que essas plataformas ainda não implementaram as Dicas de cliente do user agent.

Como esse teste de origem funciona?

Esse teste de origem é um pouco diferente de um teste de origem 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). Nesse teste, nosso objetivo é não apenas modificar a string do UA fornecida nas APIs JavaScript, mas também modificar o cabeçalho do user agent enviado na solicitação HTTP.

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

As solicitações de recursos secundários para a mesma origem enviarão automaticamente a mesma string do user agent que a solicitação de nível superior enviada. As solicitações de recursos secundários para origens de terceiros também vão enviar a mesma string do user agent que a solicitação de nível superior, incluindo a string do UA reduzida se o token do teste de origem for válido, desde que a política de permissões permita isso.

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

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

  2. Atualize seus 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 no teste de origem.
    2. Adicione Accept-CH: Sec-CH-UA-Reduced ao cabeçalho de resposta HTTP.
    3. Definir Accept-CH só fará com que a string do 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 e Accept-CH: Sec-CH-UA-Reduced válidos, todas as solicitações de sub-recursos (por exemplo, para imagens ou folhas de estilo) e subnavegação (por exemplo, iframes) vão enviar a string do UA reduzida, mesmo que as origens dessas solicitações não estejam registradas no teste de origem.
  3. Carregue seu site no Chrome M95 (ou posterior) e comece a receber a string do UA reduzida.

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

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

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

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

Para se inscrever como uma incorporação de terceiros:

  1. Acesse o Teste para redução do 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 via 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 enviará a string UA reduzida, embora as solicitações de sub-recursos 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 enviarão a string UA reduzida. Por esse motivo, recomendamos aumentar a participação no teste de origem para solicitações de nível superior e de incorporação. + Se o user agent desativou os cookies de terceiros, o teste de origem não funcionará para o cabeçalho User-Agent nas solicitações de incorporação de terceiros, embora as APIs JavaScript ainda recebam a string UA reduzida.

Como confirmo se o teste de origem está funcionando?

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

  1. O cabeçalho user agent contém a versão reduzida. Consulte esta lista de amostras de strings do UA reduzidas. 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 contendo o token do teste de origem devem ser semelhantes a:

Cabeçalhos da resposta inicial contendo o token do teste de origem.

Os cabeçalhos de solicitação subsequentes contendo a string do UA reduzida terão esta aparência:

Cabeçalhos de solicitação subsequentes contendo a string do UA reduzida.

Como paro 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 do user agent completa. Para deixar 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 de cliente.
  2. Remova o cabeçalho Origin-Trial do teste de redução do user agent da sua resposta HTTP.
  3. Se definido, remova Sec-CH-UA-Reduced do cabeçalho Critical-CH na sua resposta HTTP.

Quanto tempo vai durar o teste de origem?

O teste de origem de redução do UA será executado por pelo menos seis meses, o que corresponde a cerca de seis marcos do Chrome. O teste de origem aparecerá na versão M95 e terminará na versão M101. Quando isso acontecer, o Chrome vai avaliar o feedback do teste de origem antes de prosseguir com o envio da string user agent reduzida de forma faseda de acordo com o plano de lançamento. Se um site precisar de mais tempo, ele poderá optar por um teste de origem de descontinuação subsequente, o que permite acessar a string completa do UA por pelo menos mais seis meses. Publicaremos mais detalhes sobre o teste de descontinuação quando estiver pronto.

Como posso compartilhar feedback sobre o teste de origem de Redução de user agent?

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