Segurança - Os cookies

Introdução aos cookies


cookie


O que são estes estranhos bolinhos que um website certamente já lhe ofereceu?

Na maior parte do tempo, quando um servidor web propõe um cookie, os utilizadores ignoram este termo e clicam em “OK” sem estar a preocupar-se sobre a sua evolução. Um cookie é na realidade um ficheiro armazenado no disco duro do utilizador, para permitir ao servidor web reconhecê-lo de uma página web a outro. Os cookies são utilizados nomeadamente pelos sites de comércio electrónico a fim de conservar a preferência do utilizador (por exemplo, as opções que assinalou) para evitar que tenha de escrever ou seleccionar tudo de novo.


Os cookies e a segurança

O problema essencial dos cookies vem de informações que contêm. Com efeito, quando um utilizador se liga a um síte personalizável, este vai colocar-lhe algumas perguntas a fim de elaborar o seu perfil, seguidamente vai armazenar estes dados num cookie. De acordo com o síte, a maneira como a informação é armazenada pode revelar-sese prejudicial para o utilizador.

Com efeito, um síte de venda em linha pode por exemplo recolher informações sobre as preferências dos utilizadores por meio de um questionário, para lhes propor ulteriormente artigos que lhes possam interessar.

Por exemplo, sabendo se o utilizador é um homem ou uma mulher, um síte poderá direccioná-lo directamente para a página adequada para fazer poupar tempo (e sobretudo para vender melhor). Se além disso, o utilizador indicar no seu perfil que é amador de ténis, o síte estará em condições de lhe propor uma selecção personalizada dos últimos artigos na matéria.

Um cookie é assim um mecanismo previsto para criar uma associação entre a sessão do utilizador (navegação entre páginas de um mesmo síte durante um período dado) 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 tempo dado. Só o servidor deve poder estar em condições de associar as preferências do utilizador a este identificador. Assim, após expiração do cookie, o identificador de sessão será inútil e o cookie não conterá nenhuma informação relativa ao utilizador.

Em nenhum caso o cookie deve conter directamente as informações relativas ao utilizador e a sua duração de vida deve ser o mais próxima possível da que corresponde à sessão do utilizador.

Por outro lado, os dados armazenados num cookie são enviados pelo servidor, com base nos dados informados pelo utilizador (com excepçã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 sobre o utilizador que ele não deu ou informações sobre o conteúdo do computador, ou noutros termos: o cookie não pode recolher informações sobre o sistema do utilizador.

Assim, recuse dar informações pessoais a um síte que não lhe inspira confiança, porque não tem nenhuma razão para recolher informações dessas.

Um cookie não tem por conseguinte nada de perigoso se o utilizador não der informações pessoais.

Funcionamento dos cookies

Os cookies fazem parte das especificações do protocolo HTTP, ou seja, o protocolo que permite 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 rubricas que permitem enviar informações específicas de maneira bilateral. Uma destas rubricas está reservada para a escrita de ficheiros no disco duro: os cookies.

A rubrica HTTP reservada à utilização dos cookies chama-se Set-Cookie, trata-se de uma simples linha de texto como esta:

Set-Cookie : NOM=VALEUR; domain=NOM_DE_DOMAINE; expires=DATE 

Trata-se por conseguinte de uma cadeia de caracteres que começam por “Set-Cookie: ” e seguido de pares chaves-valor, sob a forma CLE=VALEUR, separados por vírgulas.

Eis um quadro das principais chaves (chamados atributos) possíveis para um cookie :


AtributoValorSintaxeDescriçã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 é necessário recorrer à codificação URLEste atributo é obrigatório (é, de resto, o único)
expiresDATADia, DD-Mês-YYYY 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 tido em conta pelo servidor
domainnom_du_domainexxx.xxx.xxx

O nome de domínio é deixado geralmente vazio porque o nome do servidor é atribuído por defeito (é o que se deseja geralmente). Quando é indicado, o nome de domínio deve conter pelo menos dois pontos (ie pt.kioskea.net). Uma máquina que provém de um domínio específico pode especificar apenas um nome de subdomínio ou o seu próprio nome de domínio

path/repertoire/chemin/

O atributo path (caminho) permite definir uma subdirectoria ou um ficheiro do servidor sobre o qual o cookie é válido, a fim de reduzir o seu campo de acção

securenenhum 

O atributo secure é opcional. Permite especificar que o cookie será enviado unicamente se a conexão for protegida (por SSL ou S-HTTP




  • Um cookie não pode exceder 4 Ko
  • Um cliente não pode ter mais de 300 cookies no seu disco
  • Um servidor pode criar apenas 20 cookies máximos no cliente



Envio dos cookies ao servidor

Quando um cliente se liga a um síte (por conseguinte ao servidor), os cookies para o domínio e o caminho especificado são enviados automaticamente nas rubricas do pedido HTTP. A rubrica apresenta-se então sob a forma :

Cookie : NOM1=VALEUR1; NOM2=VALEUR2; ...  


Um certificado CGI (ou outro como ASP ou PHP) pode então verificar a presença do cookie:

  • analisando as rubricas no caso do CGI
  • utilizando o objecto Request no caso do certificado ASP
  • utilizando as variáveis $NOM1, $NOM2,… criadas automaticamente pelo motor de certificado PHP

Limitações dos cookies

Os cookies estão sujeitos a diversos constrangimentos:

  • O seu número total é limitado a 300;
  • A dimensão máxima de um cookie é de 4 ko;
  • Podem existir apenas 20 no máximo cookies por domínio.

Algumas precisões suplementares sobre os cookies


  • O cookie não é visível antes do próximo carregamento de página.
  • É necessário saber que certos navegadores não tratam efectivamente os cookies
    • Microsoft Internet Explorer 4 com Service Pack 1 não trata correctamente os cookies que têm o parâmetro caminho definido.
    • Contrariamente, Netscape Communicator 4.05 e Microsoft Internet Explorer 3.x não tratam correctamente os cookies que não têm os parâmetros caminho e expiração definidos.



Última modificação do dia Segunda 28 de Setembro de 2009 às 11:56:43


Este documento, intitulado « Segurança - Os cookies »a partir de Kioskea (pt.kioskea.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.