Nada de biscoitos assustadores

Os biscoitos são mais bons frescos, então quais são as receitas mais recentes para garantir que você ainda possa aproveitar a temporada de terror sem cookies obsoletos?

Os biscoitos são mais frescos, então quais são as receitas mais recentes para garantir que você ainda possa aproveitar a estação assustadora sem cookies obsoletos?

Estamos no caminho para descontinuar gradualmente os cookies de terceiros em toda a plataforma da Web. Esse é um marco importante no combate ao rastreamento entre sites, mas faz parte de uma jornada bastante longa. Vamos dar uma olhada no nosso progresso e nas guloseimas que reservamos no futuro...

Na superfície, os cookies fornecem um armazenamento simples de chave-valor, que é enviado entre o navegador e o servidor. Isso pode fornecer funcionalidades úteis em um site, como salvar uma preferência: theme=bats ou armazenar o ID da sessão de um usuário conectado.

Um cookie de terceiros com um valor simples, como "theme=bats" ou "fav_pumpkins=us-nyc"

Quando um cookie é usado no mesmo site que o definiu, ele é chamado de cookie primário. Se ele for usado como parte de um site diferente daquele que o definiu, chamamos isso de cookie de terceiros. Por exemplo, meu cookie theme=bats será primário se eu visitar o mesmo site que o definiu. No entanto, se ele estiver incluído em um iframe ou outro recurso entre sites como parte de um site diferente, será um cookie de terceiros.

O problema dos cookies de terceiros é que eles podem permitir o rastreamento entre sites. Em vez de definir algo como um tema, o serviço compartilhado pode armazenar um identificador inteiro nele. Esse mesmo identificador é então enviado quando você navega em diferentes sites que incluem o cookie de serviços compartilhados, o que significa que um serviço pode observar e vincular sua atividade nesses sites.

Cookie de terceiros com um ID exclusivo que permite ao site rastrear um usuário na Web.

Cookies primários por padrão

Já progredimos em nossa jornada até aqui! Antes, apenas definir um cookie simples: theme=pumpkins seria enviado em todos os contextos: no mesmo site ou entre sites. A maioria dos sites quer que os cookies sejam enviados apenas no mesmo contexto. Isso pode ser controlado pelo atributo SameSite no cookie. Exemplo:

Set-Cookie: theme=bats; SameSite=Lax

Isso informa ao navegador para enviar o cookie somente se o recurso corresponder ao site de nível superior. No entanto, isso significava que o site tinha que especificar quando queria o cookie primário. Isso é um pouco reverso em termos de segurança, porque você precisa perguntar quando quer mais privilégios, e não apenas recebê-los por padrão.

Agora, SameSite=Lax é o padrão. Se você definir theme=bats, ele só será enviado no mesmo contexto de site.

O valor padrão de SameSite=Lax interrompe o envio de um cookie em um contexto de terceiros.

Se quiser um cookie entre sites ou de terceiros (talvez seja necessário que o tema seja exibido em um widget incorporado), especifique:

Set-Cookie: theme=bats; SameSite=None; Secure
O valor explícito "SameSite=None" marca o cookie a ser enviado em contextos entre sites.

Isso informa ao navegador que você quer que o cookie seja enviado em qualquer contexto entre sites, mas queremos restringir apenas a conexões seguras.

Cookies primários ainda mais saborosos

Embora o padrão tenha ficado um pouco melhor, ainda há espaço para você melhorar essa receita. Um gostinho rápido:

Set-Cookie:  __Host-theme=bats;
  Secure;
  Path=/;
  HttpOnly;
  Max-Age=7776000;
  SameSite=Lax;

Assim, você recebe um cookie primário que permanece restrito a apenas um domínio, conexões seguras, sem acesso por JavaScript, expira automaticamente antes de ficar desatualizado e, obviamente, só é permitido em contextos do mesmo site.

Os Cookies ficam mais saborosos com os CHIPS!

Um dos aspectos mágicos da Web é a capacidade de compor vários sites juntos. Digamos que eu queira criar um widget de mapa para que outros sites mostrem os melhores passeios em canteiros de abóboras ou rotas de doces ou travessuras. Meu serviço usa um cookie para permitir que os usuários armazenem o progresso ao longo do trajeto. O problema é que esse mesmo cookie de terceiros é enviado tanto no site como no site de travessuras ou travessuras. Não quero rastrear usuários entre sites, mas o navegador usa apenas um cookie. Não há como separar esse uso.

Cookies entre sites com SameSite=None ainda vão para um pote de cookies compartilhado

É aí que entra a proposta "Cookies com estado particionado independente", ou CHIPS. Em vez de um jar de cookie compartilhado, há um jar separado e particionado por site de nível superior. Os sites podem ativar essa opção usando o atributo Partitioned no cookie.

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
O atributo "Particionado" no cookie cria jars de cookie separados por site de nível superior.

Em vez de dividir aquele pote de biscoito, cada um recebe o seu. Mais simples, mais seguro e mais higiênico.

Acabamos de enviar a Intent de envio para Cookies com estado particionado independente (CHIPS, na sigla em inglês) no Chrome 109. Isso significa que eles vão estar disponíveis para teste na versão Beta em dezembro e, depois, prontos para o Stable em janeiro de 2023. Então, se você estiver procurando uma resolução de ano novo para melhorar a receita de cookies do seu site, dê uma olhada e veja se é possível começar a colocar CHIPS nesses cookies entre sites.

Convidar cookies para a parte com conjuntos primários

Sobre o feedback dos desenvolvedores, muitos de vocês também deixaram claro que há situações em que você compartilha serviços entre sites controlados e quer poder usar cookies em todos eles, mas não permite que eles sejam enviados em verdadeiros contextos de terceiros. Por exemplo, talvez você tenha pretty-pumpkins.com e pretty-pumpkins.co.uk. É possível ter um sistema de logon único baseado em cookies que funcione em todos esses sites. Os CHIPS não funcionariam porque eu teria que fazer login nos dois sites. O requisito é que preciso do mesmo cookie em todos os sites relacionados.

Estamos trabalhando na proposta de conjuntos primários para tentar tornar isso possível. Passamos por um teste de origem e muita discussão na comunidade, o que nos levou à versão mais recente, que tem como objetivo:

  • Ofereça às organizações uma maneira de definir um grupo de sites que precisam ser iguais entre si.
  • Utilize a API Storage Access para solicitar acesso a cookies entre sites dentro desse conjunto primário.
Os conjuntos primários permitem um cookie jar compartilhado apenas entre sites relacionados

Esses cookies ainda estão sendo preparados no forno, mas você pode consultar o guia para desenvolvedores sobre conjuntos primários quando houver algo para testar. Se quiser contribuir com a discussão, acesse a proposta WICG/first-party-sets.

Não deixe os cookies ficarem desatualizados.

Nosso objetivo é começar a descontinuar o suporte a cookies de terceiros no Chrome entre 2024 e 2024. Há tempo para se preparar, mas você deve começar a planejar agora.

  1. Faça uma auditoria no seu código para encontrar cookies com SameSite=None. Esses são os cookies que exigirão atualizações.
  2. Se você não tiver cookies de terceiros, verifique se os cookies do mesmo site estão usando as melhores receitas de cookies primários.
  3. Se você usa esses cookies em um contexto totalmente contido e incorporado, investigue e teste a proposta CHIPS.
  4. Se você precisar desses cookies em vários sites que formam um grupo coeso, investigue a proposta de conjuntos primários.
  5. Se nenhuma dessas opções se aplicar a você, investige as outras propostas do Sandbox de privacidade em que estamos desenvolvendo APIs personalizadas para casos de uso individuais que não dependem do rastreamento entre sites.

Esta é apenas uma breve visão geral. Vamos continuar compartilhando mais notícias e orientações à medida que o trabalho avança. Se você tiver dúvidas, problemas ou quiser compartilhar os resultados do seu próprio trabalho, temos diversos trajetos para entrar em contato.

Lembre-se: biscoitos podem ser deliciosos, mas apenas alguns por vez. Não tente roubar o seu!