Neste artigo falaremos sobre os cookies HTTP, uma conjunto de dados que permite ao servidor/site fornecer serviços direcionados aos seus usuários, rastreamento e identificação de seus clientes. Para saber como funciona o protocolo HTTP leia o artigo: HTTP – Protocolo de comunicação WEB.
Cookies HTTP
Como já mencionado, o protocolo HTTP é stateless. Dessa forma, o estado de conexão não é armazenado. Contudo, haverá momentos em que será útil, ou ainda preciso identificar de alguma forma seus clientes.
Neste cenário entra o conceito de cookies.
A crescente utilização de lojas virtuais, e aplicações web trazem a necessidade de manter dados persistentes dos seus clientes. Qual então é o papel dos cookies neste cenário?
Eles proveem a capacidade de rastreamento, identificação e/ou fornecimento de funções para o cliente.
Definido pela RFC 6265, as informações contidas nos cookies variam de acordo com histórico de navegação do usuário. Contudo, a característica dos cookies de guardar informações dos usuários logo foi utilizada no monitoramento de usuários.
Comunicação com cookies
Ao se conectar a um site que utiliza cookies http, uma linha de cabeçalho cookie é enviada na resposta http do servidor. De posse desse cabeçalho o cliente armazena este cookie.
Sempre que houver um acesso página relacionada, o cliente enviará o valor armazenado do cookie correspondente à página.
Para que a conexão consiga manter dados persistentes, uma estrutura é necessária. Dessa forma, temos três componentes que compõem os cookies: cookie hearder line, cookie file, e informações do cookie no backend.
Cookie header line está presente nas mensagens HTTP, request e response. Nestes campos a troca de mensagens irá identificar o cliente.
Caso seja a primeira vez que o usuário se conecte, este receberá uma identificação e o arquivo do cliente será utilizado.
Livros Indicados:
E-Books de Redes e Segurança
Consequentemente, este arquivo do cliente é conhecido como cookie file. Este arquivo é mantido no cliente, contudo, gerenciado pelo browser. O cookie file armazena as informações no cliente.
Essas informações são identificações relacionadas aos sites visitados, informações para manter usuário logado entre outras informações.
Estas informações podem ainda ser utilizadas em ataques ao usuário. Falaremos no próximo tópico sobre um possível cenário de roubo de informações.
Claro que essas informações devem ser armazenadas tanto no cliente como no servidor. Portanto, além do cookie file o servidor tem o banco de dados back-end no site.
Neste banco de dados, deve ter a identificação e demais informações relacionadas aos seus clientes.
Cookie e privacidade
O cookie pode ser considerado um violador de privacidade, pois através dos cookies empresas ou pessoas podem traçar um perfil de navegação dos usuários.
Por esse motivo, a LGPD trouxe diretrizes mais rígidas para as empresas que lidam com dados de seus usuários. Atualmente o site deve informar aos clientes a utilização dos cookies.
Além disso, deve-se solicitar seu consentimento na utilização dos dados. Contudo, esse consentimento não é obrigatório.
Há ainda um uso ilegítimo destes dados. Hackers também podem utilizar os cookies para obter informações particulares de suas vítimas. Com isso pode acontecer?
Imagine que você mantêm seus sites logados em sua máquina. Isso facilita a vida, visto que não precisamos entrar com login e senha a todo momento. Mas pense sobre o assunto… essas informações ficam armazenadas nos cookies file.
No arquivo há as informações que o relacionam o usuário a uma sessão do respectivo site.
Ok, mas como poderiam utilizar meus cookies files? Continuando em nosso exemplo, imagine que há uma falha de segurança em sua máquina e um usuário malicioso consegue acesso aos seus dados.
De posse de seu cookie file, o agente malicioso poderá logar em sites utilizando as informações do usuário legítimo. Evitar deixar a conta logada, impede o armazenamento de informações de gerenciamento de sessão.
Como funciona o envio de cookies em uma conexão HTTP?
Uma mensagem request HTTP é enviada quando um usuário ao iniciar uma conexão HTTP. Ao receber a mensagem request, haverá uma verificação no banco de dados do servidor.
Consequentemente, caso seja o primeiro acesso do usuário ao site não haverá um ID associado a aquele usuário. Assim, uma atualização com inserção no banco de dados ocorrerá.
Posteriormente, o servidor irá enviar uma mensagem response setando o user ID pelo cookie header line. Esse user ID, juntamente com outras informações, será inserido no cookie file que é gerenciado pelo browser do cliente.
Observamos a exemplificação desse processo pela animação no vídeo abaixo.
Para saber mais sobre o tema
- HTTP – Protocolo de Comunicação WEB
- HTTP Methods
Referências Bibliográficas
Juliana Mascarenhas
Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer
- Cookies HTTP por Mozilla developer
- Kurose, James F., and Keith W. Ross. “Redes de Computadores e a Internet.” Pearson 28 – 6° edição
- Tanenbaum, Andrew et al. “Redes de Computadores.” Editora Pearson 28 – 5° edição.
- RFC 6265 – HTTP Managment State Mechanism
Simplificando Redes nas redes sociais
SSH: Como criar chave pública
Nesse tutorial vamos ensinar a criar e configurar o acesso a um servidor SSH usando…
Socket em Python criando chat UDP
Tutorial para a criação de um chat simples utilizando sockets em UDP em Python 3….
Socket em Python, criando um Chat
Tutorial para a criação de um chat simples utilizando sockets TCP em Python 3. O…
Como usar apt get com proxy
Ao longo dos tempos sempre me deparo nos laboratórios de rede com a necessidade de…
Qual a melhor IDE para Python?
Encontrar a IDE perfeita é uma jornada pessoal que depende de vários fatores, como suas…