Segurança - Os cookies

Agosto 2015

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 eletrônico a fim de conservar a preferência do utilizador (por exemplo, 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 de informações que contêm. Com efeito, quando um utilizador se liga a um site 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 site, a maneira como a informação é armazenada pode revelar-se prejudicial para o utilizador.

Com efeito, um site 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 anteriormente artigos que lhes possam interessar.

Por exemplo, sabendo se o utilizador é um homem ou uma mulher, um site poderá direcioná-lo diretamente 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 site estará em condições de lhe propor uma seleçã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 site 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 diretamente 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 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 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 site 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
domínionome_do_domínioxxx.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 (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/diretório/caminho/

O atributo path (caminho) permite definir uma subdiretório ou um ficheiro do servidor sobre o qual o cookie é válido, a fim de reduzir o seu campo de açã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 site (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 objeto 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 efetivamente os cookies
    • Microsoft Internet Explorer 4 com Service Pack 1 não trata corretamente os cookies que têm o parâmetro caminho definido.
    • Contrariamente, Netscape Communicator 4.05 e Microsoft Internet Explorer 3.x não tratam corretamente os cookies que não têm os parâmetros caminho e expiração definidos.

Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
Seguranca-os-cookies .pdf

Veja também


Security - Cookies
Security - Cookies
Seguridad - Cookies
Seguridad - Cookies
Sicherheit - die Cookies
Sicherheit - die Cookies
Cookies (informatique)
Cookies (informatique)
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.