Cookie, ou como os brasileiros gostam de lhe chamar, testemunho de conexão, é um conjunto de dados trocados entre o browser e o servidor de páginas, colocado num arquivo (ficheiro de texto) criado no computador do utilizador. A sua função principal é a de manter a persistência de sessões HTTP. A utilização e implementação de cookies foi um adicionada ao HTTP. Este conceito foi introduzido pela Netscape, devido às consequências de guardar informações confidenciais num computador. Situação que por vezes pode não ser segura, devido ao dos utilizadores de terminais públicos, como bibliotecas, cooffe shops, aeroportos, etc.
Um exemplo da possível utilização de um cookie, é quando um site cria esse mesmo cookie guardando informação da sua palavra chave para que você não a precise de digitar novamente quando voltar a visitar o site novamente. Também pode ser utilizado pelas páginas web para guardar as preferências do utilizador, como por exemplo quando o site lhe permite guardar os filtros aplicados por defeito a uma determinada listagem.
Funcionamento:
- Quando o servidor deseja ativar um cookie no cliente, envia uma linha no cabeçalho HTTP iniciada por Set-Cookie: .
- A partir desse momento, consoante as opções especificadas pelo cookie, o cliente irá enviar no seu cabeçalho HTTP dos pedidos uma linha contendo os cookies relevantes, iniciada por Cookie: .
Entre os parâmetros dos cookies estão: o tempo de vida (a data para o cookie "expirar a validade") e o domínio, ou grupo de páginas a que o cookie se aplica.
Os cookies podem servir para guardar entre, outras coisas, informação do estado da sessão, ou estado da aplicação. Como filtros, home page usadas, ou mesmo o tema aplicado nas páginas.
Uma utilização indevida dos cookies pode levar a um funcionamento incorreto das aplicações, onde o mesmo é usado. Pode mesmo proporcionar graves falhas de segurança.
Abaixo está uma lista dos principais cenários para teste à utilização de cookies de um site. Vários casos de teste podem ser gerados a partir destes cenários através da realização de várias combinações.
- Verificar se a aplicação está corretamente a escrever cookies ou não.
- Testar para nos certificarmos que não existe informação pessoal ou sensível guardado no cookie. Caso tenha de existir este tipo de informação esta deve estar devidamente encriptada.
- Se a aplicação a ser alvo de testes é um website publico, deve evitar de usar cookies em demasia. Pode resultar numa perda de qualidade do tráfego caso o browser esteja constantemente a pedir pelos cookies.
- Fechar todos os browsers, apagar os cookies existentes e desabilitar o uso de cookies nas configurações do browser. Efetuar a navegação/utilização da parte da aplicação que faz uso de cookies, e verificar que são mostradas mensagens apropriadas. como por exemplo "Para bom funcionamento do site, por favor habilite os cookies no seu browser."
- Definir as opções do browser de solicitar ao utilizador permissões sempre que um cookie é armazenado no sistema do cliente. Assim ao navegar por esta parte do site que usa cookies. O browser irá perguntar se desejamos aceitar ou rejeitar o cookie. A aplicação sobre teste deve apresentar uma mensagem apropriada se você rejeitar os cookies. Além disso deve-se verificar se as páginas que se estão possuem os dados corretos e que não existem corrupção nos dados.
- Feche todas as janelas do browser e apagar manualmente todos os cookies. Navegue entre as várias páginas da aplicação web e verifique que estas páginas se as mesmas mostram um comportamento inesperado.
- Edita alguns cookies manualmente no notepad++ ou em qualquer outro editor. Realiza um conjunto de modificações como alterar o conteúdo de cookies, nome do cookie, alterar a sua data de validade, etc. Após estas alterações volte a testar as funcionalidade do site. Efetue várias variações nos dados alterados de modo a procurar algumas falhas de segurança. Os cookies corrompidos não deve permitir a leitura dos dados dentro dele.
- Os cookies escritos por um website não devem de poder ser acedidos por outros.
- Se a aplicação que está a ser alvo de teste, de algo modo efetua transações online, deve-se verificar que no final da conclusão da operação, o cookie é devidamente apagado e que as ações futuras do utilizador não resultam numa segunda compra feita de modo inadvertido pelo mesmo utilizador.
- Verifique se o sistema em teste escreve os cookies de forma correta em diferentes navegadores e o site funciona corretamente com estes cookies. Este teste pode/deve ser feito em vários navegadores, como diferentes versões do Internet Explorer, Mozilla Firefox, Netscape, Opera, Safari, etc. A W3schools possui uma lista com os browsers mais usados que é atualizada com regularidade, e que pode ser consultada aqui. Para uma aplicação generalista deve pelo menos ser verificada com as versões mais recentes dos 4-5 browsers mais usados.
- Se o sistema em teste usa cookies para manter o estado de sessão dos usuários. Verifique se existe algum ID que esteja a ser mostrado na barra de endereço. Agora, experimenta mudar o ID & pressione enter. Deve ser exibida uma mensagem de acesso negado e não deverá ser possível de ver a conta de outros utilizadores.
Aplicações como Firebug permitem a edição dos cookies, pelo que basta abrir a aplicação e começar a brincar com os dados que nos são expostos e ver o que acontece.
Para finalizar existe um muito bom artigo sobre o modo de testar o uso de cookies nas aplicações web que pode ser encontrado aqui.
Bom, até à próxima.
Sem comentários:
Enviar um comentário