Nada de biscoitos assustadores

Os biscoitos são melhores frescos, então quais são as receitas mais recentes para garantir que você ainda possa aproveitar o período assustador sem biscoitos velhos?

Os biscoitos estão mais frescos, então quais são as receitas mais recentes para garantir que você ainda possa curtiu um período sinistro sem biscoitos?

Estamos no caminho para eliminar gradualmente os cookies de terceiros em toda a Web de plataforma. Esse é um marco importante ao lidar com o rastreamento entre sites, mas é parte de uma longa jornada. Vamos conferir quão longe já e o que guloseimas disponíveis no futuro...

Na superfície, os cookies fornecem um armazenamento simples de chave-valor que é enviado entre as navegador e o servidor. Isso pode oferecer funcionalidades úteis em um site como salvando uma preferência: theme=bats ou armazenando o ID de sessão de uma conta conectada; usuário.

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

Se esse cookie for usado no mesmo site que o criou, tendemos a chamar um cookie primário. Se ele for usado como parte de um site diferente chamamos isso de cookie de terceiros. Por exemplo, meu O cookie theme=bats seria primário se eu estivesse visitando o mesmo site que definiu mas se estiver incluído em um iframe ou outro recurso entre sites como parte de um site diferente, ele seria um cookie de terceiros.

O problema com cookies de terceiros é que eles podem permitir a detecção de cookies monitoramento. Em vez de definir algo como um tema, o serviço compartilhado pode e armazenar um identificador inteiro nele. Esse mesmo identificador é enviado quando você navegam por diferentes sites que incluem cookies de serviços compartilhados, que significa que um serviço pode observar e vincular sua atividade nesses sites.

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

Cookies primários por padrão

Já avançamos nessa jornada! Antes, era só configurar Um cookie simples: theme=pumpkins seria enviado em todos os contextos: mesmo site ou entre sites. A maioria dos sites só quer que os cookies sejam enviados em uma contexto do mesmo site. Isso pode ser controlado pelo atributo SameSite na cookie. Exemplo:

Set-Cookie: theme=bats; SameSite=Lax

Isso diz ao navegador para enviar o cookie somente se o recurso corresponder ao site de nível superior. No entanto, isso significava que o site precisava especificar quando cookie primário. Isso está um pouco atrasado em termos de segurança, porque você deve perguntar quando você quer mais privilégios, não apenas obtê-los ao padrão.

Agora, SameSite=Lax é o padrão. Se você definir theme=bats, ele só ser enviados no contexto do mesmo 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 você precise do tema exibido em um widget incorporado), será necessário especificar:

Set-Cookie: theme=bats; SameSite=None; Secure
O valor explícito SameSite=None marca o cookie para 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 o acesso apenas a conexões seguras.

Cookies primários ainda mais saborosos

O padrão ficou um pouco melhor, mas ainda há espaço para melhorias essa receita. Uma amostra rápida:

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

Você recebe um cookie primário restrito a apenas um domínio, conexões seguras, sem acesso por JavaScript, expira automaticamente antes fica obsoleto e (é claro!) só é permitido em contextos do mesmo site.

Biscoitos ficam mais gostosos com CHIPS!

Um dos aspectos mágicos da web é a capacidade de compor vários sites juntas. Digamos que eu queira criar um widget de mapa que permita 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 seu progresso ao longo do trajeto. O problema é que o mesmo o cookie de terceiros será enviado no site do canteiro de abóboras, como um site de doce ou travessura. Não quero acompanhar usuários entre sites, mas a navegador só usa um cookie. Não há como separar esse uso.

Cookies entre sites com SameSite=None ainda vão para um cookie jar compartilhado

É aí que os cookies com estado particionado independente, ou CHIPS, proposta chegar. Em vez de um pote compartilhado, há um intervalo separado jar particionado de cookie por site de nível superior. Os sites ativariam 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 diferentes por site de nível superior

Em vez de ter que compartilhar aquele pote de biscoitos, cada um recebe o próprio! Mais simples, mais seguros e higiênicos.

Acabamos de enviar a Intent para Enviar para Cookies com estado particionado independente (CHIPS) no Chrome 109, o que significa que eles serão disponível para teste na versão Beta em dezembro e pronto para o Stable em janeiro de 2023. Então, se você quer uma resolução de ano novo para melhorar os cookies do seu site, e veja se você pode começar a colocar CHIPS nesses itens cookies entre sites.

Como convidar cookies para a festa com conjuntos primários

Quanto ao feedback dos desenvolvedores, muitos de vocês também deixaram claro que são situações em que você compartilha serviços entre sites que controla e quer usar cookies neles, mas não permitir que eles sejam enviados em sites de terceiros. contextos de negócios diferentes. Por exemplo, talvez você tenha pretty-pumpkins.com e pretty-pumpkins.co.uk. Você pode ter um sistema de logon único baseado em cookies que funciona nesses sites. Os CHIPS não funcionariam porque eu só teria fazer login nos dois sites, o requisito é que eu precise do mesmo cookie esses sites relacionados.

Estamos trabalhando na proposta de conjuntos primários para tentar tornar isso possível. Já 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 forma de definir um grupo de sites que devem ser que são da mesma parte.
  • Usar a API Storage Access para solicitar acesso a cookies entre sites nesse conjunto primário.
Os conjuntos primários permitem um jar de cookies compartilhado apenas entre sites relacionados

Todos esses biscoitos ainda estão assando no forno, mas você pode conferir Guia para desenvolvedores sobre conjuntos primários ao há mais para você testar, ou você pode acessar proposta WICG/first-party-sets, se você gostaria de contribuir com a discussão.

Não deixe os cookies desatualizados!

Nosso objetivo é começar a eliminar gradualmente o suporte a cookies de terceiros no Chrome dos na metade de 2024. Há tempo para se preparar, mas você deve começar a planejar agora.

  1. Audite no código se há cookies com SameSite=None. Estes são os cookies que vão exigir atualizações.
  2. Se você não tiver cookies de terceiros, verifique se os cookies do mesmo site estão usando os melhores cookies primários receitas
  3. Se você usar 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, Depois, investigue os conjuntos primários proposta.
  5. Se você não se enquadrar em nenhuma dessas opções, analise as outras propostas do Sandbox de privacidade em que estamos desenvolvendo APIs de uso específico para casos de uso individuais que não dependem no rastreamento entre sites.

Esta é apenas uma breve visão geral e continuaremos a compartilhar mais notícias e orientação à medida que o trabalho avança. Se você tiver dúvidas, problemas ou quiser compartilhar os resultados do seu próprio trabalho, então temos vários caminhos para você chegar em contato.

Por isso, lembre-se: biscoitos podem ser deliciosos, mas apenas alguns por vez e com certeza Não tente roubar a de ninguém!