Quinta-feira, 16 de janeiro de 2020
Esta é uma postagem cruzada do Blog para desenvolvedores do Chromium e é específica sobre como as mudanças no Chrome poderão afetar o funcionamento do seu site para os usuários no futuro.
Em maio, o Chrome anunciou um modelo seguro por padrão para cookies, o que foi possibilitado por um novo sistema de classificação de cookies (especificações). Essa iniciativa faz parte dos nossos esforços contínuos para melhorar a privacidade e a segurança na Web.
O Chrome planeja implementar o novo modelo com o Chrome 80 em fevereiro de 2020. A Mozilla e a Microsoft também manifestaram intenção de implementar o novo modelo no Firefox e no Edge, de acordo com prazos próprios. Embora as mudanças no Chrome sejam daqui a alguns meses, é importante que os desenvolvedores que gerenciam cookies avaliem se estão preparados hoje. Esta postagem do blog descreve os conceitos gerais. Consulte Explicação sobre cookies SameSite em web.dev para ver orientações para desenvolvedores.
Como entender o contexto de cookies de vários sites e do mesmo site
Os sites geralmente integram serviços externos para publicidade, recomendações de conteúdo, widgets de terceiros, incorporações de redes sociais e outros recursos. À medida que você navega na Web, esses serviços externos podem armazenar cookies no seu navegador e acessá-los depois para oferecer experiências personalizadas ou avaliar o engajamento do público-alvo. Cada cookie tem um domínio associado. 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, o contexto dele será considerado para vários sites (ou "de terceiros").
Os casos de uso para vários sites menos evidentes incluem situações em que uma entidade que tem vários sites usa um cookie nessas propriedades. Embora a mesma entidade seja proprietária do cookie e dos sites, o contexto ainda será considerado como "vários sites" ou "terceiros" quando o domínio do cookie não corresponder aos sites acessados por ele.
Quando um recurso externo em uma página da Web acessa um cookie que não corresponde ao domínio do site, o contexto é de "vários sites" ou "terceiros".
No entanto, o acesso a cookies no contexto do mesmo site (ou "primário") ocorre quando o domínio do cookie corresponde ao do site na barra de endereço do usuário. Os cookies do mesmo site normalmente são usados para manter pessoas conectadas a sites individuais, lembrar preferências e ter compatibilidade com site analytics.
Quando um recurso de uma página da Web acessa um cookie que corresponde ao site acessado pelo usuário, esse contexto é de "mesmo site" ou "primário".
Um novo modelo de segurança e transparência para cookies
Atualmente, se um cookie for acessado apenas em um contexto primário, o desenvolvedor tem
duas opções de configuração (SameSite=Lax
ou
SameSite=Strict
) para impedir o acesso externo. No entanto, muito poucos
desenvolvedores seguem essa prática recomendada, deixando um grande número de cookies no mesmo site
expostos de maneira desnecessária a ameaças como
ataques de
falsificação de solicitações entre sites.
Para proteger mais sites e usuários, o novo modelo, que prioriza a segurança por padrão, presume que todos os cookies
precisam ser protegidos contra acesso externo, a menos que especificado de outra forma. Os desenvolvedores precisam usar a nova
configuração de cookies SameSite=None
para designar o
acesso entre sites. Quando o atributo SameSite=None
está presente, é necessário usar outro atributo,
Secure, para que os cookies entre sites só possam ser acessados por conexões HTTPS.
Isso não elimina todos os riscos associados ao acesso entre sites, mas fornece proteção
contra ataques à rede.
Além dos benefícios imediatos de segurança, a declaração explícita de cookies entre sites permite maior transparência e escolha por parte do usuário. Por exemplo, os navegadores podem oferecer aos usuários controles granulares para gerenciar os cookies acessados por apenas um site separadamente.
Restrições do Chrome a partir de fevereiro de 2020
Com o Chrome 80, em fevereiro, os cookies que não tiverem o valor SameSite declarado serão tratados como
SameSite=Lax
. Somente cookies com a configuração
SameSite=None
; Secure estarão disponíveis para acesso
externo, desde que acessados em conexões seguras. Os rastreadores de status da plataforma do Chrome para
SameSite=None
e
Secure
continuarão sendo atualizados com as informações mais recentes de lançamento.
A Mozilla confirmou a compatibilidade com o novo modelo de classificação de cookies com a
intenção de implementar
os requisitos de SameSite=None
; Secure em cookies entre sites no Firefox. A Microsoft
anunciou recentemente
planos para começar a implementar o modelo com um experimento no Microsoft Edge 80.
Como se preparar e dificuldades conhecidas
Se você gerenciar cookies entre sites, será necessário aplicar a configuração
SameSite=None
; Secure. A implementação será simples para a maioria dos desenvolvedores,
mas recomendamos que você comece os testes agora para identificar dificuldades e casos especiais,
como os seguintes:
-
Nem todas as linguagens e bibliotecas aceitam o valor "None". Por isso, os desenvolvedores precisam definir o
cabeçalho do cookie diretamente. Este repositório do GitHub (em inglês)
oferece instruções para implementar
SameSite=None
; Secure em várias linguagens, bibliotecas e frameworks. -
Alguns navegadores, incluindo certas versões do Chrome, Safari e UC, podem lidar com o valor
None
de maneiras não intencionais, o que exige que os desenvolvedores programem exceções para esses clientes. Isso inclui WebViews do Android com versões mais antigas do Chrome. Veja uma lista de clientes incompatíveis conhecidos. -
Recomendamos que os desenvolvedores de apps declarem as
configurações apropriadas do
SameSite cookie
para AndroidWebViews
com base nas versões do Chrome compatíveis com o valorNone
, para os cookies acessados por cabeçalhos HTTP(S) e pela API CookieManager do AndroidWebView
, embora o novo modelo não seja obrigatório no Android WebView no momento. - Os administradores de TI das empresas talvez precisem implementar políticas especiais para reverter temporariamente o navegador Chrome para o comportamento legado se alguns serviços, como o Logon único ou apps internos, não estiverem prontos para o lançamento em fevereiro.
-
Se você tiver cookies acessados em contextos primário e de terceiros,
use cookies separados para ter os benefícios de segurança de
SameSite=Lax
para o contexto primário.
O artigo Cookies SameSite explicados apresenta orientações específicas para as situações acima e canais para comunicar problemas e tirar dúvidas.
Para testar o efeito do novo comportamento do Chrome no seu site ou nos cookies que você gerencia, acesse:
chrome://flags
no Chrome 76 ou mais recente e ative os experimentos
"SameSite by default cookies" e
"Cookies without SameSite must be secure". Além disso, esses experimentos vão ser
ativados automaticamente para um subconjunto de usuários do Chrome 79 Beta. Alguns usuários da versão Beta com os experimentos ativados
podem ter problemas de incompatibilidade com serviços que
ainda não são compatíveis com o novo modelo. Para desativar os experimentos Beta, acesse
chrome://flags
e desative-os.
Se você gerencia cookies acessados apenas no contexto do mesmo site (cookies do mesmo site), não precisa fazer nada. O Chrome vai impedir automaticamente que esses cookies sejam acessados por entidades externas, mesmo se o atributo SameSite não estiver presente ou se nenhum valor estiver definido. No entanto, recomendamos aplicar um valor apropriado a SameSite (Lax ou Strict) e não depender do comportamento padrão do navegador, já que nem todos protegem os cookies do mesmo site por padrão.
Por fim, para saber se fornecedores e terceiros que fornecem serviços para seu site estão preparados para a mudança, verifique os avisos no console das Ferramentas para desenvolvedores no Chrome 77 e versões mais recentes quando uma página tiver cookies de vários sites sem as configurações necessárias:
Alguns fornecedores (incluindo alguns serviços do Google) implementarão as alterações necessárias até o lançamento do Chrome 80, em fevereiro. Entre em contato com seus parceiros para confirmar se eles estão prontos.