Um cookie é um pequeno arquivo de computador dentro da estrutura do protocolo de comunicação HTTP usado na Internet ou um pacote de dados que um site da Internet envia ao navegador de um usuário quando este visita o site.
Toda vez que o usuário visita o site novamente, o navegador envia o cookie de volta ao servidor para notificar o usuário sobre a atividade anterior.
Os cookies são projetados para serem um mecanismo confiável para os sites lembrarem informações sobre a atividade do usuário, como senhas salvas, itens adicionados aos carrinhos de compras da loja online, links clicados anteriormente etc.
Como resultado, eles melhoram a navegação e aumentam a eficiência da pesquisa.
Quem inventou os Cookies?
Em junho de 1994, o engenheiro de software da Netscape, Lou Montulli, inventou os cookies HTTP.
Com a ajuda de seu colega John Giannandrea, ele apresentou a tecnologia à Netscape naquele mesmo ano.
Montulli patenteou a tecnologia em 1995 e a patente foi concedida em 1998.
Como Funciona?
Quando o servidor deseja definir um cookie no cliente, ele envia uma linha no cabeçalho HTTP começando com Set-Cookie:
A partir desse momento, dependendo das opções especificadas pelo cookie, o cliente enviará uma linha contendo o cookie relevante em seu cabeçalho de solicitação HTTP, começando com Cookie.
Os parâmetros para o cookie incluem: tempo de vida (a data em que o cookie “expira”) e o domínio ou grupo de páginas ao qual o cookie se aplica.
Por exemplo, é possível fazer com que um cookie seja aplicado apenas a endereços iniciados por de maneira que esse mesmo cookie já não se aplique para skins, por exemplo.
Se nenhuma data de expiração for especificada para o cookie, ele expirará assim que o usuário fechar o navegador.
Em JavaScript (embutido no HTML da página visitada), podemos criar um script para manipulá-los. Usamos “document.cookie” (sem aspas).
No ASP, podemos usar cookies através dos objetos Response e Request. No PHP, os cookies são tratados através da função setcookie.
Isso deve acontecer antes que qualquer dado seja enviado ao navegador, pois os cookies fazem parte dos cabeçalhos HTTP.
Parâmetros de Segurança do Cookie
Secure – Instrui o navegador a nunca enviar cookies sob solicitações HTTP que não estejam em canais de comunicação criptografados.
Os cookies só podem ser enviados por HTTPS. Isso funciona mesmo se o usuário inserir manualmente a solicitação HTTP.
Uma solicitação HTTP será enviada, mas o navegador não enviará nenhum cookie marcado como “seguro”.
Essa medida foi projetada para minimizar as instâncias em que um usuário mal-intencionado pode atrair uma vítima para fazer uma solicitação HTTP, o que pode permitir que o cookie de sessão da vítima seja capturado.
Essa captura pode ser feita com ferramentas que analisam o tráfego da rede, como um sniffer, ou por meio dos logs de acesso do aplicativo.
HttpOnly – Dentre os atributos presentes em um cookie, o HttpOnly trata da permissividade, de modo que, caso esteja habilitado em um cookie, não possa ser manipulado por código do lado do cliente como JavaScript, VBscript, etc.
A atribuição do parâmetro HttpOnly a um determinado cookie é projetada para dificultar ataques de script entre sites, cujo objetivo é realizar seqüestro de sessão ou ataques destinados a alterar o valor de um cookie pré-estabelecido.
A maioria dos navegadores modernos suporta o atributo HttpOnly. Se o navegador não suportar o sinalizador, ele será ignorado, portanto, é vulnerável e pode ser alterado por código malicioso.
Path – O atributo path instrui o navegador a enviar o cookie apenas para o domínio especificado e todos os subdomínios.
Se a propriedade padronizar o diretório raiz do site (“/”) – isso pode apresentar alguns riscos de segurança adicionais para o aplicativo, pois o envio de cookies para outros aplicativos que podem estar hospedados em outros diretórios não será protegido por Limitar a mesma web servidor.
Por exemplo, suponha que haja dois aplicativos no mesmo servidor em pastas diferentes, um em /site1/ e outro em /site2/.
Não restringir o escopo dos cookies a um aplicativo tornará os cookies desse aplicativo acessíveis a ambos os aplicativos.
Deixe um comentário