Mudar de servidor VPN termina a sessão numa loja?
Um novo endereço de saída não esvazia o pote de cookies. Decida primeiro se está a testar o caminho de rede, a sessão iniciada ou os dados guardados do site.
Mude a saída da VPN com uma loja aberta noutro separador e o carrinho costuma continuar lá. Não é uma falha da VPN; é o navegador a fazer exatamente o que lhe foi dito. Um cookie é enviado pelo navegador, e um novo caminho de rede não altera o que o navegador guarda. Três perguntas diferentes escondem-se atrás de «o site ainda me conhece», e a resposta depende de qual está realmente a fazer.
Três perguntas, um sintoma
Primeira: o site reconhece um cookie guardado? Segunda: reconhece uma conta com sessão iniciada, que subsiste independentemente de qualquer cookie individual? Terceira: reconhece algo sobre o navegador ou o dispositivo em vez do estado guardado? Cada uma tem o seu teste e o seu remédio.
| What you changed | What it actually tests |
|---|---|
| VPN exit address | Whether the site treats a different network origin differently |
| Cookie jar for one site | Whether a stored identifier was doing the recognition |
| Browser profile or account | Whether identity, rather than storage, links the visits |
A maior parte da confusão vem de mudar a primeira e esperar que a segunda se siga. Um endereço de rede e um armazenamento do navegador são dois sistemas separados que, por acaso, são usados pela mesma página.
O que um cookie transporta de facto
A gestão de estado HTTP, especificada na RFC 6265, é deliberadamente simples: o servidor define um nome e um valor com um âmbito, e o navegador devolve-os para pedidos que correspondam a esse âmbito. O valor pode ser um identificador de sessão, uma preferência ou um token opaco que o servidor associa a um registo de carrinho. Nada no mecanismo menciona o endereço do cliente.
É esse desenho que faz com que inícios de sessão e carrinhos comuns sobrevivam a uma mudança de rede, e é também por isso que sobrevivem a ela para os rastreadores. O mesmo mecanismo serve ambos os propósitos e não os distingue. Não há nenhum campo no protocolo para o endereço do cliente, por isso não há nada que uma nova saída possa invalidar. Um site que quisesse ligar um cookie a uma origem de rede teria de acrescentar essa lógica.
Quando um site devolve um cookie, o servidor procura o registo para o qual esse valor aponta. Mudar a rota que o pedido tomou não altera essa procura, e é esta toda a explicação para a observação do carrinho de compras.
Decida o que o seu teste está a medir
Antes de mudar o que quer que seja, escreva o estado de partida: que perfil de navegador, que conta, que dados do site, que caminho de rede. Depois mude exatamente um deles e observe. Um teste que muda o endereço de saída e o perfil do navegador ao mesmo tempo não prova nada sobre nenhum deles.
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' https://shop.example/cart
curl -sS -c /tmp/jar.txt -b /tmp/jar.txt -o /dev/null -w '%{http_code}\n' --interface 198.51.100.44 https://shop.example/cartAmbos os comandos reutilizam o mesmo ficheiro de cookies, e o segundo força um endereço de origem local diferente onde o anfitrião o permite. A resposta do carrinho é a mesma nos dois casos porque o servidor nunca viu uma identidade de cliente diferente, apenas um caminho diferente. É o mecanismo num par de pedidos reproduzível.
Se o objetivo é ver se o site o reconhece sem estado guardado, limpe os dados desse site e repita. Se continuar a reconhecê-lo, os suspeitos seguintes são a conta com sessão iniciada, uma ligação que seguiu ou características do navegador, e não um cookie.
Limpe o estado certo, não a rede
Remover o armazenamento de um site pertence aos próprios controlos do navegador, e muitas vezes termina a sua sessão ou repõe preferências como efeito secundário. Não apaga a conta nem os registos que o serviço já detém; esses precisam do processo próprio do serviço.
As restrições entre sites tratam de outra parte do problema. Os navegadores podem bloquear ou dividir o armazenamento que os serviços incorporados de outro modo partilhariam entre sites, enquanto um início de sessão de primeira parte continua a funcionar. Um início de sessão bem-sucedido não é, por isso, prova de que o rastreamento entre sites está a funcionar.
As janelas privadas são outra ferramenta com um âmbito mais estreito do que as pessoas esperam. Os sites continuam a poder definir cookies durante a sessão, e um início de sessão continua a identificar a conta. É o terminar da sessão privada que descarta o estado temporário, o que significa fechar todas as janelas privadas e não apenas um separador.
Por fim, trate a impressão digital como uma possibilidade e não como a primeira explicação. Características do dispositivo e do navegador podem ligar visitas sem qualquer cookie guardado, e limpar o armazenamento não lhes toca. Verifique primeiro as causas simples, alargue depois a investigação e anote que estado alterou para que a comparação seguinte faça sentido.