Cookies e Sessions no HTTP

Post on 23-Jun-2015

110 views 1 download

description

Cookies e Sessions no HTTP

Transcript of Cookies e Sessions no HTTP

Cookies e SessionsWillian Massami Watanabe

1

Cookies

2

Cookies

3

• 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

4

Usuário

Servidor

Servlet1

Login

Protegido por login

Sem Cookies

5

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTP

6

Usuário

Servidor

Servlet1

Login

Protegido por login

Sem Cookies

Requisição HTTP

Resposta HTTP

7

Usuário

Servidor

Servlet1

Login

Protegido por login

Sem Cookies

Requisição HTTP

Resposta HTTP

8

Usuário

Servidor

Servlet1

Login

Protegido por login

Cookies abobrinha=logado

Requisição HTTP

Resposta HTTP

9

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTP

Cookies abobrinha=logado

10

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTP

11

Exemplo

12

Servlet1

13

Login - doGet

14

Login - doGet

Login - doPost

15

Login - doGet

Login - doPost

Servlet1

Set-Cookies abobrinha=logado

Sem Cookies

Sem Cookies

16

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?

Sessions

17

Sessions

18

• 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

• Cookies

• URL rewriting

19

Usuário

Servidor

Servlet1

Login

Protegido por login

Sem Cookies

20

UsuárioServlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTP

Sessions JSESSIONID=qav…

21

Usuário

Servidor

Servlet1

Login

Protegido por loginCookies

JSESSIONID=qav…

Sessions JSESSIONID=qav…

22

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTP

Sessions JSESSIONID=qav…

23

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTPSessions

JSESSIONID=qav…

Cookies JSESSIONID=qav

24

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTPSessions

JSESSIONID=s4x…!logado = true!

usuario = watinha

Cookies JSESSIONID=s4x

25

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTP

Sessions JSESSIONID=s4x…!

logado = true!usuario = watinha

Cookies JSESSIONID=s4x

26

Usuário

Servidor

Servlet1

Login

Protegido por login

Requisição HTTP

Resposta HTTP

Sessions JSESSIONID=s4x…!

logado = true!usuario = watinha

27

Exemplo

28

Servlet1

29

Login - doPost

30

Login - doPost

Servlet1

Login - doGet

31

Login - doPost

Servlet1

Login - doGetCookies

JSESSIONID=qav…

Sessions JSESSIONID=qav…

Cookies JSESSIONID=qav

Sessions JSESSIONID=qav…

Sessions JSESSIONID=s4x…!

logado = true!usuario = watinha

Cookies JSESSIONID=s4x

32

Login - doPost

Servlet1

Login - doGetCookies

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?