Os cookies são um dos métodos disponíveis para adicionar estado persistente ao Tracking do Mautic. Ao longo dos anos, os cookies cresceram e evoluíram, mas deixaram de lado alguns itens relacionados à privacidade e segurança.
Os navegadores (incluindo Chrome, Firefox e Edge) estão mudando seu comportamento para impor padrões de privacidade aos cookies e isso pode afetar completamente o modo como o Tracking do Mautic funciona.
No começo do Ano o Google já havia anunciado que pretendia aumentar a segurança de cookies e a versão do navegador Google Chrome 79 (lançado oficialmente em 10 de Dezembro de 2019) apresenta uma alteração importante na forma como os cookies são manipulados.
Embora a alteração tenha como objetivo desencorajar o rastreamento de cookies maliciosos, também é esperado que ela afete severamente muitos aplicativos e serviços baseados em padrões abertos, incluindo o Tracking do Mautic. A Microsoft chegou até a lançar um alerta de possível quebra de alguns serviços por causa dessa mudança.
Esta alteração será o comportamento padrão do Google Chrome 80, que será lançado como uma versão estável em 4 de fevereiro de 2020.
O Chrome implementa esses comportamentos a partir da versão 80, embora a versão atual do Chrome 79 já comece a aplicar algumas regras que impedem o funcionamento do Tracking do Mautic. O Firefox tornou o comportamentos padrão no Firefox 69 e O Edge também planeja alterar seus comportamentos padrão.
O que são cookies primários e de terceiros?
Se você inspecionar os cookies do seu site provavelmente irá notar que existem cookies para uma variedade de domínios, não apenas o domínio do seu site.
Os cookies que correspondem ao domínio do site atual, ou seja, o que é exibido na barra de endereços do navegador, são chamados de cookies primários.
Da mesma forma, os cookies de domínios que não sejam o site atual são chamados de cookies de terceiros.
O cookie é relativo ao contexto do usuário. Por exemplo, o mesmo cookie pode ser de terceiro ou primário, dependendo do site em que o usuário estiver no momento.
O uso obrigatório de cookies com o atributo SameSite
A introdução do atributo SameSite permite que você declare se seu cookie deve ser restrito a um contexto primário ou terceiro.
É importante entender exatamente o que ‘site' significa:
O site é a combinação do sufixo do domínio e a parte do domínio imediatamente antes dele. Por exemplo, o domínio www.powertic.com faz parte do site powertic.com.
A introdução do atributo SameSite em um cookie fornece três maneiras diferentes de controlar esse comportamento. Você pode optar por não especificar o atributo ou usar Strict ou Lax para limitar o cookie a solicitações no mesmo site.
Se você definir SameSite=Strict, isso significa que seu cookie será enviado apenas em um contexto primário. Em termos de usuário, o cookie só será enviado se o site corresponder ao site atualmente exibido na barra de URL do navegador. Por exemplo, se o cookie foi criado em powertic.com, ele só será visto em powertic.com.
Mas existem cookies que podem ser usados entre subdomínios e é aí que entra o SameSite=Lax, permitindo que o cookie seja enviado com as navegações de nível superior. Sendo assim, um cookie criado em mkt.powertic.com poderá ser visto em powertic.com, porém um cookie criado em powertic.com não será visto em mkt.powertic.com. E é aí que começa o problema com o Tracking do Mautic.
Nem Strict nem Lax são uma solução completa para a segurança do seu site. Os cookies são enviados como parte da solicitação do usuário e você deve tratá-los da mesma forma que qualquer outra entrada do usuário.
Para nossa sorte existe a opção de não especificar nenhum valor ao SameSite, que anteriormente era o modo de afirmar implicitamente que você deseja que o cookie seja enviado em todos os contextos.
No último rascunho do RFC6265bis, isso está sendo explicitado pela introdução de um novo valor, o SameSite=None.
Isso significa que você pode usar SameSite=None para comunicar claramente que deseja intencionalmente que o cookie seja enviado em um contexto de terceiros.
Se você fornecer um serviço que outros sites consomem, como widgets, Tracking do Mautic, Focus, conteúdo incorporado, ou programas afiliados use SameSite=None para garantir que sua intenção seja clara.
Sendo assim, os três tipos de parâmetros SameSite ficam definidos como:
Parâmetro | Ação |
Strict | Bloqueia o cookie para domínios terceiros |
Lax | Bloqueia o cookie para domínios terceiros e libera para o domínio raiz |
None | Libera o cookie para todos os domínios |
Alterações no comportamento padrão sem SameSite
Embora o atributo SameSite seja amplamente suportado pelos navegadores, ele não foi amplamente adotado pelos desenvolvedores.
O padrão aberto de envio de cookies para qualquer lugar significa que todos os casos de uso funcionam, mas deixa o usuário vulnerável a CSRF e vazamento não intencional de informações.
Para incentivar os desenvolvedores a declarar suas intenções e fornecer aos usuários uma experiência mais segura, a proposta da IETF, Incrementally Better Cookies, estabelece duas alterações principais:
- Os cookies sem o atributo SameSite serão tratados como SameSite=Lax.
- Cookies com SameSite=None também devem especificar Secure.
Embora isso pretenda aplicar um padrão mais seguro, você deve definir um atributo SameSite explícito, em vez de confiar no navegador para aplicá-lo a você.
Veja como é hoje a configuração dos Cookies do Mautic:
Nenhuma configuração é adicionada aos Cookies.
Se você não informar o SameSite será aplicado o SameSite=Lax que impedirá que o cookie seja lido pelo Tracking do Mautic.
Como configurar os Cookies do Mautic
Para que o Tracking do Mautic funcione corretamente nas versões recentes dos navegadores (Chrome 79 ou posterior, Firefox 69 ou superior), você deve aplicar SameSite=None; Secure em todos os cookies gerados pelo Mautic.
Você pode fazer isso alterando o comportamento do seu servidor web, como o Apache criando um arquivo powertic.conf em /etc/apache2/conf-available/ com o seguinte conteúdo:
Isso torna sua intenção explícita para o cookie e aumenta as chances de uma experiência consistente do Tracking do Mautic nos navegadores.
O comportamento padrão aplicado pelo Chrome 79 é um pouco mais permissivo do que um SameSite=Lax
explícito do Chrome 80, pois permitirá que determinados cookies sejam enviados em solicitações POST de nível superior, mas não resolve o problema do Mautic.
Isso pretende ser uma atenuação temporária; você ainda deve corrigir os cookies entre sites para usar SameSite=None; Secure.
Pode ser necessário atualizar suas dependências ou trechos para garantir que seu site capte o novo comportamento. Este comportamento já está configurado por padrão no Instalador Gratuito da Powertic.
Finalizando
Essas duas alterações são compatíveis com os navegadores que implementaram corretamente a versão anterior do atributo SameSite ou simplesmente não oferecem suporte a ela.
Ao aplicar essas alterações aos seus cookies, você está explicitando o uso pretendido, em vez de confiar no comportamento padrão do navegador.
Da mesma forma, qualquer cliente que ainda não reconhece SameSite=None deve ignorá-lo e continuar como se o atributo não estivesse definido.