Progresso no Sandbox de privacidade (dezembro de 2021)

Esta é a edição de resumo de 2021 do Progresso no Sandbox de privacidade, acompanhando os marcos na suspensão gradual dos cookies de terceiros no Chrome e trabalhando para criar uma Web mais particular. Normalmente, compartilhamos uma visão geral das atualizações no cronograma do Sandbox de privacidade com notícias de todo o projeto, mas dezembro foi um mês tranquilo. Em vez disso, vamos rever algumas das atividades de 2021 e apresentar algumas possíveis resoluções que você pode fazer agora que estamos no novo ano.

Processo de desenvolvimento do Chromium

Para que um novo recurso de plataforma da Web apareça no Chromium, ele precisa passar pelo processo de desenvolvimento aberto do projeto. Em 2021, a equipe do Sandbox de privacidade produziu o seguinte:

🥚Intent de criação de protótipos 19
🧪Intenção de testar7
🚀Intenção de envio 11
Fonte

Cada marco também é um convite para que o ecossistema da Web mais amplo possa contribuir.

Uma Intent de protótipo é o primeiro ponto de verificação, em que convidamos a discussão e a experimentação antecipada. Isso significa que uma proposta vai estar disponível no GitHub, onde é possível fazer uma pergunta criando um problema ou participar de discussões e apresentações em grupos de padrões, como o W3C e o IETF. Também é aí que a programação começa, o que significa que você espera que a funcionalidade do protótipo seja disponibilizada para testes de desenvolvedor por trás de uma sinalização de recurso. O feedback inicial é fundamental para validar e iterar as propostas.

Uma Intent de experimento é uma etapa opcional para solicitar um teste de origem. Os desenvolvedores podem se inscrever no teste de origem de um recurso e, em seguida, testá-lo em produção. É chamado de experimento porque temos aspectos específicos do recurso que queremos validar em ambientes reais. Os desenvolvedores que podem testar e compartilhar os resultados desses testes oferecem feedback valioso para ajudar a iterar e aprimorar o recurso.

Uma Intent de envio é o marco final que indica que um recurso está concluído e pronto para disponibilidade geral. Depois de aprovado, o recurso é mesclado em uma versão futura e depois passa pelos canais Canary, Beta e estável. É fundamental testar seus sites com as versões Canary e Beta do Chrome para detectar e relatar bugs antes que um recurso chegue à versão Stable.

Propostas

Cada proposta do Sandbox de privacidade tem um repositório do GitHub. Um repositório hospeda uma explicação para resumir a funcionalidade geral, uma especificação detalhada para implementação por navegadores e contribuições de todo o ecossistema da Web na forma de problemas e solicitações de envio.

Em 14 repositórios do Sandbox de privacidade, tivemos:

💬545Problemas criados
250Problemas encerrados
🛠️261 Solicitações de envio criadas
223Solicitações de envio mescladas
Fonte

A linguagem nas explicações e especificações geralmente é voltada para um público que já conhece os padrões e o desenvolvimento de navegadores, o que pode ser desafiador se você não estiver familiarizado com isso. No entanto, o objetivo de uma explicação é explicar. Se houver pontos que não estão claros ou não são abordados, informe um problema para que possamos atualizar e esclarecer a explicação.

Resoluções

Limpeza de primavera do user agent

Como estávamos contabilizando para o Ano Novo, também estamos fazendo a contagem up para o Chrome 100 e a redução incremental da string do user agent. Esse é um bom motivador para revisar qualquer uso da string do user agent no seu código para verificar se ela é afetada por uma dessas mudanças.

Para encontrar essas áreas, faça o seguinte:

  1. Pesquise navigator.userAgent no código JavaScript ou acesse o cabeçalho User-Agent no código do servidor.
  2. Verifique sua análise da string para ver as suposições sobre uma versão de dois dígitos. Por exemplo, uma regex que especifique \d\d ou \d{2} precisa ser substituída por \d+.
  3. Verifique o uso da string em qualquer lugar em que você confia:
    • versão da plataforma (sistema operacional)
    • versão completa do build do Chrome
    • nome do dispositivo móvel
  4. Esses são os valores que serão reduzidos a strings fixas no futuro. Se você precisar acessar esses valores, migre para as dicas do cliente do user agent.

Há uma atualização de dezembro para mencionar: se você está adotando as dicas do cliente do user agent, enviamos a intent de envio para permitir a delegação de dicas a outras origens em HTML com uma tag <meta>. Exemplo:

<meta name="accept-ch" content="sec-ch-ua-model=( https://foo.bar )">

Se você estiver com vontade de fazer uma limpeza de primavera, também poderá considerar alternativas ao uso do user agent. Se você estiver usando a string para detectar dispositivos móveis, investigue se é possível substituí-la pelo design responsivo. Se você estiver verificando o nome do navegador e a versão para suporte a recursos, veja se pode usar a detecção de recursos em vez disso.

É sempre válido lembrar que não há garantia de que o user agent, como qualquer valor fornecido pelo cliente, seja preciso ou mesmo fornecido. A recente vulnerabilidade do Log4j, "Log4shell", oferece um exemplo desse risco. Um cliente que define a string do user agent para incluir um valor como ${jndi:ldap://example.com/file} pode conseguir que um site analise isso ativamente no servidor.

Outra atividade tradicional de ano novo é garantir que você esteja feliz por ter um número saudável de biscoitos com ingredientes de qualidade. À medida que avançamos em direção à desativação dos cookies de terceiros, verifique quais cookies do seu site serão afetados. O ano de 2020 trouxe uma vantagem, já que se tornou necessário marcar todos os cookies para uso entre sites ou de terceiros com SameSite=None.

Qualquer cookie com o atributo SameSite definido como None precisará ser atualizado.

Existem três trajetos possíveis a serem considerados no momento:

  1. Se o cookie só for necessário em uma relação individual com o site de nível superior, acompanhe o progresso da proposta CHIPS. Isso significa adicionar o atributo Partitioned ao cookie.
  2. Se o cookie for usado em um contexto entre sites, mas somente em sites de sua propriedade e operados por você, ele poderá ser candidato a conjuntos primários. Para isso, é preciso definir os sites no conjunto e adicionar o atributo SameParty ao cookie.
  3. Se o cookie for usado para fornecer alguma forma de valor compartilhado em vários sites, investigue o conjunto mais amplo de propostas do Sandbox de privacidade para uma solução alternativa que não depende do rastreamento entre sites.

Se você está se sentindo especialmente preocupado com a saúde, este também é um momento ideal para revisitar todo o seu uso de cookies, porque temos uma boa receita para melhorar seus cookies primários também.

Feedback

À medida que publicamos essas atualizações mensais e avançamos no Sandbox de privacidade como um todo, queremos garantir que os desenvolvedores recebam as informações e o suporte de que precisam. Conte para nós no @ChromiumDev no Twitter se há algo que podemos melhorar nesta série. Vamos usar sua resposta para continuar melhorando o formato.

Confira as Perguntas frequentes sobre o Sandbox de privacidade, que continuamos expandindo com base nos problemas que você enviou ao repositório de suporte para desenvolvedores. Se você tiver alguma dúvida sobre testes ou implementação de alguma das propostas, fale conosco.