Segurança - Os cookies

Novembro 2016
cookie

Introdução aos cookies

O que são estes estranhos biscoitos que um website certamente já lhe propôs?
Na maior parte do tempo, quando um servidor web propõe um cookie, os usuários ignoram este termo e clicam em OK, sem se preocupar com sua evolução. Um cookie é, na realidade, um arquivo armazenado no disco duro do usuário, para permitir que o servidor web o reconheça de uma página para outra. Os cookies são utilizados nomeadamente pelos sites de e-commerce a fim de memorizar a preferência do usuário (ex: as opções que assinalou) para evitar que tenha de escrever ou selecionar tudo de novo.

Os cookies e a segurança

O problema essencial dos cookies vem das informações que eles contêm. Na verdade, quando um usuário se conecta a um site personalizável, este vai fazer-lhe algumas perguntas a fim de elaborar o seu perfil e, em seguida,vai armazenar estes dados em um cookie. Dependendo do site, a maneira como a informação é armazenada pode revelar-se prejudicial para o usuário. Na realidade, um site de venda online pode, por exemplo, colher informações sobre as preferências dos usuários por meio de um questionário, para propor artigos que possam interessa-los.

Por exemplo, ao saber se o usuário é um homem ou uma mulher, um site poderá direciona-lo diretamente para a página adequada para ganhar tempo (e sobretudo para vender melhor). Se, além disso, o usuário indicar no seu perfil que é amador de tênis, o site estará em condições de lhe propor uma seleção personalizada dos últimos artigos sobre o assunto. Assim, um cookie é um mecanismo previsto para criar uma associação entre a sessão do usuário (navegação entre páginas de um mesmo site durante um determinado tempo) e os dados relativos.

Idealmente, o cookie deve conter uma cadeia aleatória (identificador de sessão) única e dificilmente "adivinhável", válida unicamente durante um certo tempo. Só o servidor deve poder associar as preferências do usuários a este identificador. Assim, após expiração do cookie, o identificador de sessão se tornará inútil e o cookie não conterá nenhuma informação relativa ao usuário. Em nenhum caso o cookie deve conter informações relativas ao usuário e a sua durabilidade deve ser o mais próximo possível da que corresponde à sessão do usuário.

Por outro lado, os dados armazenados num cookie são enviados pelo servidor, com base nos dados informados pelo usuário (com exceção do endereço IP e a identificação do navegador transmitida automaticamente ao servidor). Assim, o cookie não pode, em nenhum caso, conter informações que o usuário não deu ou sobre o conteúdo do computador, ou seja, o cookie não pode recolher informações sobre o sistema do usuário. Assim, recuse-se sempre a dar informações pessoais a um site que não lhe inspire confiança, porque ele não razão nenhuma de pedi-las. Por conseguinte, um cookie não tem nada de perigoso se o usuário não der suas informações pessoais.

Funcionamento dos cookies

Os cookies fazem parte das especificações do protocolo HTTP, ou seja, o protocolo para surfar nas páginas web. O protocolo HTTP permite trocar mensagens entre o servidor e o cliente através de pedidos HTTP e de respostas HTTP. Os pedidos e respostas HTTP contêm cabeçalhos que permitem enviar informações específicas de maneira bilateral. Um destes cabeçalhos está reservado para a escrita de arquivos no disco duro: os cookies.

O cabeçalho HTTP reservado para o uso dos cookies chama-se “Set-Cookie”, trata-se de uma simples linha de texto como esta:

Set-Cookie : NOME=VALOR; domínio=NOME_DO_DOMINIO; expires=DATA 

Trata-se de uma cadeia de caracteres que começa por "Set-Cookie" e seguido de pares de chave-valor, sob a forma CHAVE=VALOR, separados por vírgulas. Eis um quadro das principais chaves (chamados “Atributos”) possíveis para um cookie:


Atributo Valor Sintaxe Descrição
NOME_DO_COOKIEVALORO nome e o valor não podem conter os caracteres ponto e vírgula (;), vírgula (,) e espaço (). Para usar tal valor é preciso recorrer à codificação URLEste atributo é obrigatório (é, de resto, o único)
expiresDATADia, DD-Mês-AAAA HH:MM:SS GMTO atributo “expires” permite definir a data na qual o cookie já não deve ser armazenado no disco e não deve ser levado em conta pelo servidor
domínionome_do_domínioxxx.xxx.xxxGeralmente, o nome de domínio fica vazio porque o nome do servidor é atribuído por padrão (em geral, é o desejado). Quando é indicado, o nome de domínio deve conter, pelo menos, dois pontos (br.CCM.net). Uma máquina que provém de um determinado domínio pode especificar apenas um nome de subdomínio ou o seu próprio nome de domínio
path/diretório/caminho/O atributo “path” (caminho) permite definir um subdiretório ou um arquivo do servidor no qual o cookie é válido, a fim de reduzir o seu campo de ação.
securenenhumO atributo “secure” é opcional. Com ele é possível especificar se o cookie será enviado apenas se a conexão for protegida (por SSL ou S-HTTP

Um cookie não pode exceder 4 KB. Um cliente não pode ter mais de 300 cookies no seu disco e um servidor só pode criar, no máximo, 20 cookies no cliente

Envio dos cookies ao servidor

Quando um cliente se conecta a um site (consequentemente, ao servidor), os cookies para o domínio e o caminho especificado são enviados automaticamente para os cabeçalhos do pedido HTTP. Assim, o cabeçalho se apresenta sob a seguinte forma:

Cookie: NOME1=VALOR1; NOME2=VALOR2; ... 

Um certificado CGI (ou outro, como o ASP ou o PHP) pode, então, verificar a presença do cookie analisando os cabeçalhos no caso do CGI, utilizando o objeto Request, no caso do certificado ASP ou utilizando as variáveis $NOME1, $NOME2,... criadas automaticamente pelo motor de certificado PHP.

Limitações dos cookies

Os cookies estão sujeitos a certas restrições como um número total limitado a 300, uma dimensão máxima de 4 KB e ter, no máximo, 20 cookies por domínio.

Precisões suplementares sobre os cookies


O cookie não é visível antes do próximo carregamento da página. Saiba que certos navegadores não tratam efetivamente os cookies, como o Microsoft Internet Explorer 4 com Service Pack 1, que não trata corretamente os cookies com caminho definido. Contrariamente, o Netscape Communicator 4.05 e o Microsoft Internet Explorer 3.x não tratam corretamente os cookies que não têm as configurações de caminho e expiração definidos.


Veja também :

Security - Cookies
Security - Cookies
Seguridad - Cookies
Seguridad - Cookies
Cookies (internet)
Cookies (internet)
Sicurezza - I cookies
Sicurezza - I cookies
Este documento, intitulado « Segurança - Os cookies »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.