Upload
bruno-pedro
View
2.838
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Sessões
PHP Advanced
Conteúdo
• Conceito de sessão
• Formas de identificar
• Dados de sessão
• Projecto
• Resumo
2
Sessões
PHP Advanced
Sessão
• Permite gravar de uma forma persistente informação entre pedidos
• Gravação pode ser feita em disco, base de dados, ou outro meio persistente
• Podem ser gravados dados sobre o utilizador, sobre o estado da aplicação ou dados de navegação
3
Sessões
PHP Advanced
Sessão
• Cada sessão está associada a um identificador único (UID)
• Os UIDs são gerados através de um algoritmo que garante a unicidade
4
Sessões
PHP Advanced
Sessão
• O UID pode ser armazenado no browser do utilizador através de um cookie, de um parâmetro GET ou POST
• Tipicamente é utilizado um cookie
5
Sessões
PHP Advanced
Cookies
• Não confundir sessão com a gravação de informação em cookies
• Deve-se evitar a utilização de cookies para gravar informação arbitrária sobre o utilizador ou a aplicação
• Porquê?
6
Sessões
PHP Advanced
Funções
• session_start(): inicia uma sessão, utilizando configurações pré-definidas
• $_SESSION: superglobal que contém todas as variáveis gravadas na sessão
7
Sessões
PHP Advanced
Funções
• session_destroy(): remove toda a informação associada a uma sessão
• session_regenerate_id(): refaz o identificador de sessão e grava-o no cookie do browser
8
Sessões
PHP Advanced
Configurações
• Através de ini_set()
• session.save_path: directório onde são gravados os ficheiros de sessão
• session.name: nome da sessão e do cookie que é gravado no browser
9
Sessões
PHP Advanced
Configurações
• session.cache_expire: tempo de vida da sessão
• session.cookie_lifetime: tempo de vida do cookie onde fica gravado o ID de sessão
10
Sessões
PHP Advanced
Sessões
• Exemplo de utilização de sessão
11
Sessões
PHP Advanced
Sessões• É possível gravar a sessão num directório
hashed, de modo a não atingir o máximo de ficheiros por directório
12
número de sub-níveisabaixo do directório
Sessões
PHP Advanced
Sessões• É necessário criar todos os directórios antes de
gravar os ficheiros de sessão
13
Sessões
PHP Advanced
Aumentar a segurança
• Invocar session_regenerate_id(true)
• Remove a sessão antiga
• Utiliza um novo identificador
• Previne session hijacking através de sucessivas tentativas de injectar um ID no cookie
14
Sessões
PHP Advanced
Aumentar a segurança
15
• A cada novo pedido, a sessão é removida e é gerado um novo identificador!
Sessões
PHP Advanced
Outras formas
• O PEAR::Auth utiliza sessões para gerir a autenticação
• É possível, a qualquer momento, escrever dados em $_SESSION, desde que a sessão tenha sido iniciada
16
Sessões
PHP Advanced
Projecto
• Utilizar a sessão para gravar todas as informações relativas ao utilizador, evitando leituras consecutivas à base de dados
17
Sessões
PHP Advanced
Resumo
• Conceito de sessão
• Identificação da sessão
• Configurações
• Manipulação de dados
18
OOP em PHP
PHP Summer School
Questões?
19
Sessões
PHP Advanced
Mais informação
20
• O meu blog: http://unfoldingtheweb.com/
• Manual de PHP: http://www.php.net/
• PEAR: http://pear.php.net/