3
respostas

Dúvida sobre Cookies..

Olá, no curso sobre Servlet, o Guilherme disse que o Cookie dura até o tempo definido, ou até que se feche o navegador. Mas, então alguns sites, mesmo após fechar o navegador, conseguem ler o cooki antigo?

3 respostas

Fernando, você pode alterar o tempo de vida do cookie usando o método setMaxAge(int segundos). Abraços!

Isso eu vi no curso. Mas a dúvida é: como alguns sites conseguem ver o cookie de outro? Por exemplo, faço uma busca no google, e depois lá no facebook aparece uma propaganda relacionada a algo que pesquisei...

Até onde sei, há algumas técnicas diferentes pra fazer isso acontecer. A mais comum é a utilização de cookies de terceiros (Third-Party Cookies). Explico:

Por razões de segurança um cookie só pode ser acessado pela mesma origem que determinou sua criação. Então, via de regra, não é possível um servidor acessar um cookie enviado por outro servidor*. Mas, há truques que podemos usar pra seguirmos o usuário. Olhe este exemplo:

Você faz uma pesquisa no Google sobre carros. Então, o google.com te envia um cookie para que você possa ser identificado no futuro. Lembre-se que seu navegador somente enviará esse cookie para a origem que determinou sua criação, ou seja, o google.com. Na verdade, ele enviará este cookie, automaticamente, sempre que fizer uma requisição para sua origem.

Muito bem. Você encontrou um resultado que lhe interessou. Clicou no link e foi direcionado para o carros.com. Acontece que este site exibe propaganda do Google Ads. No seu código HTML, o desenvolvedor do site incluiu uma iFrame com um link pro Google. Teu navegador, seguindo os links da página, envia uma requisição para o google.com que, agora sim, consegue ler aquele cookie enviado pela página de buscas. Pronto. Agora ele sabe o que você andou pesquisando e pode exibir uma propaganda adequada aos teus interesses.

Espero ter ajudado. Qualquer dúvida, é só dizer. Forte abraço.

  • Há discussões sobre a aplicação da técnica de CORS (Cross-Origin Resource Sharing) paras os cookies, mas não tenho experiência com ela.