Cookies e Sessions 
Willian Massami Watanabe 
1
Cookies 
2
Cookies 
• Mecanismos gerais para armazenar dados persistentes 
de navegação no lado cliente de uma aplicação web 
• Estão associados a um determinado domínio de uma 
aplicação 
• O servidor envia os Cookies e estes são armazenados 
como arquivos texto no computador 
• Em toda requisição realizada por um navegador web os 
cookies relacionados ao domínio do destino da 
requisição são enviados 
3
4 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Sem Cookies
5 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP
6 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Sem Cookies 
Requisição HTTP 
Resposta HTTP
7 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Sem Cookies 
Requisição HTTP 
Resposta HTTP
8 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Cookies 
abobrinha=logado 
Requisição HTTP 
Resposta HTTP
9 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP 
Cookies 
abobrinha=logado
10 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP
Exemplo 
11
Servlet1 
12
Login - doGet 
13
14 
Login - doGet 
Login - doPost
15 
Login - doGet 
Servlet1 
Sem Cookies 
Login - doPost 
Set-Cookies 
abobrinha=logado 
Sem Cookies
Problemas 
• Por que cada cookie é associado a um domínio? 
• É possível forjar um cookie? 
• Como proteger os cookies? 
• Posso armazenar quantos cookies eu quiser? 
• Que outras utilidades os cookies podem ter? 
16
Sessions 
17
Sessions 
• Mecanismos gerais para armazenar dados 
persistentes de navegação no lado servidor de 
uma aplicação web 
• Utiliza-se de uma chave compartilhada entre o 
cliente e o servidor 
18 
• Cookies 
• URL rewriting
19 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Sem Cookies
20 
Usuário 
Servlet1 
Protegido por login 
Login 
Requisição HTTP 
Resposta HTTP 
Sessions 
JSESSIONID=qav…
21 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Cookies 
JSESSIONID=qav 
… 
Sessions 
JSESSIONID=qav…
22 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP 
Sessions 
JSESSIONID=qav…
23 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP 
Sessions 
JSESSIONID=qav… 
Cookies 
JSESSIONID=qav 
…
24 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP 
Sessions 
JSESSIONID=s4x…! 
logado = true! 
usuario = watinha 
Cookies 
JSESSIONID=s4x 
…
25 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP 
Sessions 
JSESSIONID=s4x…! 
logado = true! 
usuario = watinha 
Cookies 
JSESSIONID=s4x 
…
26 
Usuário 
Servlet1 
Protegido por login 
Login 
Servidor 
Requisição HTTP 
Resposta HTTP 
Sessions 
JSESSIONID=s4x…! 
logado = true! 
usuario = watinha
Exemplo 
27
Servlet1 
28
Login - doPost 
29
30 
Servlet1 
Login - doPost 
Login - doGet
31 
Servlet1 
Login - doPost 
Login - doGet 
Cookies 
JSESSIONID=qav 
… 
Sessions 
JSESSIONID=qav… 
Cookies 
JSESSIONID=qav 
… 
Sessions 
JSESSIONID=qav… 
Sessions 
JSESSIONID=s4x…! 
logado = true! 
usuario = watinha 
Cookies 
JSESSIONID=s4x 
…
32 
Servlet1 
Login - doPost 
Login - doGet 
Cookies 
JSESSIONID=qav 
… 
Sessions 
JSESSIONID=qav… 
Cookies 
JSESSIONID=qav 
… 
Sessions 
JSESSIONID=qav… 
Sessions 
JSESSIONID=s4x…! 
logado = true! 
usuario = watinha 
Cookies 
JSESSIONID=s4x 
… 
Servidor 
Servidor 
Servidor 
Cliente 
Cliente 
Cliente
Problemas 
• É possível forjar uma session? 
• A session é mais segura que o cookie? 
• Que outras utilidades as sessions podem ter? 
33

Cookies e Sessions no HTTP

  • 1.
    Cookies e Sessions Willian Massami Watanabe 1
  • 2.
  • 3.
    Cookies • Mecanismosgerais para armazenar dados persistentes de navegação no lado cliente de uma aplicação web • Estão associados a um determinado domínio de uma aplicação • O servidor envia os Cookies e estes são armazenados como arquivos texto no computador • Em toda requisição realizada por um navegador web os cookies relacionados ao domínio do destino da requisição são enviados 3
  • 4.
    4 Usuário Servlet1 Protegido por login Login Servidor Sem Cookies
  • 5.
    5 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP
  • 6.
    6 Usuário Servlet1 Protegido por login Login Servidor Sem Cookies Requisição HTTP Resposta HTTP
  • 7.
    7 Usuário Servlet1 Protegido por login Login Servidor Sem Cookies Requisição HTTP Resposta HTTP
  • 8.
    8 Usuário Servlet1 Protegido por login Login Servidor Cookies abobrinha=logado Requisição HTTP Resposta HTTP
  • 9.
    9 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP Cookies abobrinha=logado
  • 10.
    10 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP
  • 11.
  • 12.
  • 13.
  • 14.
    14 Login -doGet Login - doPost
  • 15.
    15 Login -doGet Servlet1 Sem Cookies Login - doPost Set-Cookies abobrinha=logado Sem Cookies
  • 16.
    Problemas • Porque cada cookie é associado a um domínio? • É possível forjar um cookie? • Como proteger os cookies? • Posso armazenar quantos cookies eu quiser? • Que outras utilidades os cookies podem ter? 16
  • 17.
  • 18.
    Sessions • Mecanismosgerais para armazenar dados persistentes de navegação no lado servidor de uma aplicação web • Utiliza-se de uma chave compartilhada entre o cliente e o servidor 18 • Cookies • URL rewriting
  • 19.
    19 Usuário Servlet1 Protegido por login Login Servidor Sem Cookies
  • 20.
    20 Usuário Servlet1 Protegido por login Login Requisição HTTP Resposta HTTP Sessions JSESSIONID=qav…
  • 21.
    21 Usuário Servlet1 Protegido por login Login Servidor Cookies JSESSIONID=qav … Sessions JSESSIONID=qav…
  • 22.
    22 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP Sessions JSESSIONID=qav…
  • 23.
    23 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP Sessions JSESSIONID=qav… Cookies JSESSIONID=qav …
  • 24.
    24 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP Sessions JSESSIONID=s4x…! logado = true! usuario = watinha Cookies JSESSIONID=s4x …
  • 25.
    25 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP Sessions JSESSIONID=s4x…! logado = true! usuario = watinha Cookies JSESSIONID=s4x …
  • 26.
    26 Usuário Servlet1 Protegido por login Login Servidor Requisição HTTP Resposta HTTP Sessions JSESSIONID=s4x…! logado = true! usuario = watinha
  • 27.
  • 28.
  • 29.
  • 30.
    30 Servlet1 Login- doPost Login - doGet
  • 31.
    31 Servlet1 Login- doPost Login - doGet Cookies JSESSIONID=qav … Sessions JSESSIONID=qav… Cookies JSESSIONID=qav … Sessions JSESSIONID=qav… Sessions JSESSIONID=s4x…! logado = true! usuario = watinha Cookies JSESSIONID=s4x …
  • 32.
    32 Servlet1 Login- doPost Login - doGet Cookies JSESSIONID=qav … Sessions JSESSIONID=qav… Cookies JSESSIONID=qav … Sessions JSESSIONID=qav… Sessions JSESSIONID=s4x…! logado = true! usuario = watinha Cookies JSESSIONID=s4x … Servidor Servidor Servidor Cliente Cliente Cliente
  • 33.
    Problemas • Épossível forjar uma session? • A session é mais segura que o cookie? • Que outras utilidades as sessions podem ter? 33