ATUALIZAÇÃO (28/10/2019): Revisamos os pontos 2 e 3 da seção "Como se preparar: complexidades conhecidas" abaixo.


Em maio, o Chrome anunciou um modelo seguro por padrão para cookies, ativado por um novo sistema de classificação de cookies (especificações). Essa iniciativa faz parte do nosso trabalho de aprimoramento para melhorar a privacidade e a segurança em toda a Web.
O Chrome planeja implementar o novo modelo com o Chrome 80 em fevereiro de 2020. A Mozilla e a Microsoft também indicaram a intenção de iniciar o uso desse recurso no Firefox e Edge a partir dos próprios cronogramas. Embora as alterações do Chrome só ocorram no próximo mês, é importante que os desenvolvedores que gerenciam cookies comecem a se preparar para essa mudança. Esta postagem do blog descreve conceitos de alto nível. Consulte o artigo Explicação sobre os cookies SameSite em web.dev para ver orientações específicas para desenvolvedores.

Noções básicas sobre o contexto dos cookies entre sites e de mesmo site



Em geral, os sites integram serviços externos para divulgação, recomendações de conteúdo, widgets de terceiros, incorporações sociais e outros recursos. À medida que você navega na Web, esses serviços externos podem armazenar cookies no seu navegador e acessá-los mais tarde para oferecer experiências personalizadas ou medir o engajamento do público. Todo cookie tem um domínio associado a ele. Se o domínio associado a um cookie corresponder a um serviço externo e não ao site na barra de endereço do usuário, isso será considerado um contexto entre sites (ou “de terceiros”).

Os casos de uso entre sites menos evidentes incluem situações em que uma entidade possui vários sites e usa um único cookie em todas essas propriedades. Embora a mesma entidade seja proprietária do cookie e dos sites, isso ainda será considerado um contexto entre sites ou de "terceiros" quando o domínio não corresponder aos sites em que o cookie é acessado.
Quando um recurso externo em uma página da Web acessa um cookie que não corresponde ao domínio do site, isso é definido como um contexto entre sites ou "de terceiros”.


Já o acesso a cookies em um contexto de mesmo site (ou próprio) ocorre quando o domínio de um cookie corresponde ao domínio do site na barra de endereço do usuário. Os cookies de mesmo site são comumente usados para manter as pessoas conectadas em sites individuais, lembrar as preferências dos usuários e oferecer suporte à análise de páginas da Web.

 
Quando um recurso em uma página da Web acessa um cookie que corresponde ao site visitado pelo usuário, isso é considerado um contexto de mesmo site ou “próprio”.


Um novo modelo para segurança e transparência de cookies



Atualmente, se um cookie só puder ser acessado em um contexto próprio, o desenvolvedor terá a opção de aplicar uma das duas configurações (SameSite=Lax ou SameSite=Strict) para impedir o acesso externo. No entanto, são raros os desenvolvedores que seguem essa prática recomendada, deixando um grande número de cookies de mesmo site de forma desnecessária, o que aumenta a exposição a ameaças como ataques de falsificação de solicitação entre sites.

Para oferecer mais proteção aos sites e usuários, o novo modelo de segurança por padrão assume que todos os cookies devem ser protegidos contra o acesso externo, a menos que seja especificado de outra forma. Os desenvolvedores precisam usar uma nova configuração de cookie, SameSite=None, para designar cookies para o acesso entre sites. Quando o atributo SameSite=None estiver presente, será preciso usar um atributo Secure adicional para que os cookies entre sites só possam ser acessados por meio de conexões HTTPS. Isso não reduzirá todos os riscos associados ao acesso entre sites, mas oferecerá proteção contra ataques à rede.

Além dos benefícios imediatos à segurança, a declaração explícita de cookies entre sites permite maior transparência e possibilidade de escolha do usuário. Por exemplo, os navegadores podem oferecer controles refinados para que os usuários possam gerenciar cookies que são acessados por um único site separadamente dos cookies acessados em vários sites.


Implementação do Chrome a partir de fevereiro de 2020



Com o Chrome 80 em fevereiro, o Chrome tratará cookies que não possuem o valor “SameSite” declarado como cookies SameSite=Lax. Somente cookies com a configuração SameSite=None; Secure estarão disponíveis para acesso externo, desde que sejam usadas conexões seguras. Os rastreadores de status da plataforma Chrome para SameSite=None e Secure continuarão sendo atualizados com as informações mais recentes sobre o lançamento.

A Mozilla confirmou o apoio ao novo modelo de classificação de cookies com a intenção de implementar os requisitos de SameSite=None; Secure para cookies entre sites no Firefox. Além disso, a Microsoft anunciou recentemente que planeja iniciar a implementação do modelo a partir de um experimento no Microsoft Edge 80.


Como se preparar: complexidades conhecidas



Ao gerenciar cookies entre sites, você precisará aplicar a configuração SameSite=None; Secure. A implementação deve ocorrer de forma direta para a maioria dos desenvolvedores, mas recomendamos que você comece a testar o recurso agora para identificar complexidades e casos especiais, como os seguintes:

  • Nem todos os idiomas e bibliotecas são compatíveis com o valor “None”. Isso exigirá que os desenvolvedores definam o cabeçalho do cookie diretamente. Este repositório do GitHub oferece instruções para implementar SameSite=None; Secure em uma variedade de idiomas, bibliotecas e estruturas.
  • Alguns navegadores, incluindo algumas versões do Chrome, Safari e UC Browser, podem gerenciar o valor  None de maneira não intencional, exigindo que os desenvolvedores codifiquem exceções para esses clientes. Isso inclui os Android WebViews com versões mais antigas do Chrome. Veja esta lista de clientes incompatíveis.
  • Os desenvolvedores de aplicativos são orientados a declarar as configurações de cookie SameSite apropriadas para os Android WebViews que usam versões compatíveis do Chrome com o valor  “None”. Isso deve ocorrer tanto para cookies acessados por meio de cabeçalhos HTTP(S) quanto pela API CookieManager do Android WebView, mesmo que o novo modelo só seja aplicado mais tarde.
  • Os administradores de TI de empresas talvez precisem implementar políticas especiais para reverter temporariamente o navegador Chrome para o comportamento legado, caso alguns serviços, como logon único ou aplicativos internos, não estejam prontos para o lançamento em fevereiro.
  • Se você possui cookies que são acessados em um contexto próprio e de terceiros, considere usar cookies separados para aproveitar os benefícios de segurança de SameSite=Lax no contexto próprio.
  • Consulte o artigo
Explicação sobre os cookies SameSite e veja orientações específicas para as situações acima, além de canais para relatar problemas e fazer perguntas.

Para testar o efeito do novo comportamento do Chrome no seu site ou nos cookies gerenciados por você, acesse chrome://flags no Chrome 76+ e ative as experiências “Cookies SameSite por padrão” e “Cookies sem SameSite precisam ser seguros”. Essas experiências também serão ativadas automaticamente para um subconjunto de usuários Beta do Chrome 79. Alguns usuários Beta com as experiências ativadas poderão enfrentar problemas de incompatibilidade com serviços que ainda não oferecem suporte ao novo modelo. Como alternativa, eles poderão acessar chrome://flags e desativar as experiências Beta.

Se você gerencia cookies que só são acessados no contexto de mesmo site (cookies de mesmo site), nenhuma ação será necessária. O Chrome impedirá automaticamente que esses cookies sejam acessados por entidades externas, mesmo que o atributo “SameSite” esteja ausente ou que nenhum valor tenha sido definido. No entanto, é altamente recomendável que você aplique um valor “SameSite” apropriado (Lax ou Strict) e não confie no comportamento padrão do navegador, já que nem todos os navegadores protegem os cookies de mesmo site por padrão.

Por fim, se você tiver dúvidas sobre a disponibilidade do recurso em relação a fornecedores e outras pessoas que prestam serviços ao seu site, verifique os avisos do console das Ferramentas para Desenvolvedores no Chrome 77+ quando uma página tiver cookies entre sites que não possuem as configurações necessárias:

Um cookie associado a um recurso entre sites em (domínio do cookie) foi definido sem o atributo “SameSite”. Uma versão futura do Chrome só oferecerá cookies com solicitações entre sites se eles estiverem configurados com ”SameSite=None” e ”Secure”. Você pode revisar os cookies nas Ferramentas para Desenvolvedores em Aplicativo>Armazenamento>Cookies e ver mais detalhes em https://www.chromestatus.com/feature/5088147346030592 e https://www.chromestatus.com/feature/5633521622188032.”

Alguns provedores (incluindo alguns serviços do Google) implementarão as alterações necessárias antes do Chrome 80 em fevereiro. Você pode entrar em contato com esses parceiros para confirmar a disponibilidade do recurso.



Publicado por Barb Palser, Chrome e parcerias de plataformas da Web