|
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:
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.