O comportamento dessas funções podem ser modificado pelas configurações do php.ini.
Nome | Padrão | Modificável | Changelog |
---|---|---|---|
session.save_path | "" | PHP_INI_ALL | |
session.name | "PHPSESSID" | PHP_INI_ALL | |
session.save_handler | "files" | PHP_INI_ALL | |
session.auto_start | "0" | PHP_INI_PERDIR | |
session.gc_probability | "1" | PHP_INI_ALL | |
session.gc_divisor | "100" | PHP_INI_ALL | Disponível desde PHP 4.3.2. |
session.gc_maxlifetime | "1440" | PHP_INI_ALL | |
session.serialize_handler | "php" | PHP_INI_ALL | |
session.cookie_lifetime | "0" | PHP_INI_ALL | |
session.cookie_path | "/" | PHP_INI_ALL | |
session.cookie_domain | "" | PHP_INI_ALL | |
session.cookie_secure | "" | PHP_INI_ALL | Disponível desde PHP 4.0.4. |
session.cookie_httponly | "" | PHP_INI_ALL | Disponível desde PHP 5.2.0. |
session.use_strict_mode | "0" | PHP_INI_ALL | Disponível desde o PHP 5.5.2. |
session.use_cookies | "1" | PHP_INI_ALL | |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponível desde PHP 4.3.0. |
session.referer_check | "" | PHP_INI_ALL | |
session.cache_limiter | "nocache" | PHP_INI_ALL | |
session.cache_expire | "180" | PHP_INI_ALL | |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP_INI_ALL no PHP <= 4.2.3. PHP_INI_PERDIR no PHP < 5. Disponível desde PHP 4.0.3. |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Disponível desde o PHP 7.1.0. |
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Disponível desde o PHP 7.1.0. |
session.sid_length | "32" | PHP_INI_ALL | Disponível desde o PHP 7.1.0. |
session.sid_bits_per_character | "5" | PHP_INI_ALL | Disponível desde o PHP 7.1.0. |
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Disponível desde o PHP 5.4.0. |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Disponível desde o PHP 5.4.0. |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Disponível desde o PHP 5.4.0. |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Disponível desde o PHP 5.4.0. |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Disponível desde o PHP 5.4.0. |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Disponível desde o PHP 5.4.0. |
session.lazy_write | "1" | PHP_INI_ALL | Disponível desde o PHP 7.0.0. |
url_rewriter.tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Disponível desde o PHP 4.0.4. Desde PHP 7.1.0 essa opção não é mais utilizada pel mecanismo de sessão. |
session.hash_function | "0" | PHP_INI_ALL | Disponível desde o PHP 5.0.0. Removido no PHP 7.1.0. |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponível desde o PHP 5.0.0. Removido no PHP 7.1.0. |
session.entropy_file | "" | PHP_INI_ALL | Removido no PHP 7.1.0. |
session.entropy_length | "0" | PHP_INI_ALL | Removido no PHP 7.1.0 |
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponível desde o PHP 4.3.0. Removido no PHP 5.4.0. |
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponível desde o PHP 4.3.0. Removido no PHP 5.4.0. |
O sistema de gerenciamento de sessões suporta várias opções de configurações que podem ser colocados no arquivo php.ini. A seguir um breve resumo.
session.save_handler
string
session.save_path
string
Há um argumento opcional N para esta diretiva que determina o número de níveis de diretório que seus arquivos de sessão serão espalhados. Por exemplo, definindo para '5;/tmp' pode levar a criação de um arquivo de sessão e diretórios como /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . Para fazer uso do N você deve criar todos estes diretórios antes do uso. Um pequeno script shell existe em ext/session para fazer isto, chamado mod_files.sh, com uma versão para o Windows chamada mod_files.bat. Também note que se N é usado e maior do que 0 então a limpeza de sessões não será executada, veja uma cópia do php.ini para mais informações. Também, se você usar N, certifique-se de cercar session.save_path com "aspas" porque o separador (;) é usado também para comentátios no php.ini.
O módulo de armazenamento em arquivo cria arquivos com permissões 600 por padrão. Esse padrão pode ser alterado com o argumento opcional MODE: N;MODE;/path onde MODE é o valor octal representando as permissões. Configurar MODE não afeta o umask do processo.
Se você deixar isto definido num diretório de leitura público, como /tmp (o padrão), outros usuários no servidor poderão raptar sessõoes pegando a lista de arquivos nesse diretório.
Ao utilizar o argumento opcional de nível de diretório N, como descrito acima, note que utilizar um valor maior que 1 ou 2 é inapropriado na maioria dos sites por conta da geração de um grande número de diretórios exigidos: por exemplo, um valor de 3 implica que existirão 64^3 diretórios em disco, o que pode resultar numa quantidade enorme de espaço e inodes desperdiçados.
Somente use N maiores que 2 se você estiver absolutamente certo que o seu site é grande o suficiente para exigí-lo.
Nota: Antes do PHP 4.3.6 os usuários de Windows tinham que mudar esta variável para usar as funções de sessão do PHP. Um caminho válido deve ser especificado, ex.: c:/temp.
session.name
string
session.auto_start
boolean
session.serialize_handler
string
session.gc_probability
integer
session.gc_divisor
integer
session.gc_maxlifetime
integer
Nota: Se scripts diferentes tem valores diferentes para session.gc_maxlifetime mas compartilham o mesmo lugar para guardar os dados da sessão então o script com o menor valor estará limpando os dados. Neste caso, use esta diretiva em conjunto com session.save_path.
session.referer_check
string
session.entropy_file
string
Nota: Removido no PHP 7.1.0. A partir do PHP 5.4.0 session.entropy_file tem como padrão /dev/urandom ou /dev/arandom, se disponível. No PHP 5.3.0 essa diretiva está em branco por padrão.
session.entropy_length
integer
session.use_strict_mode
boolean
Nota: Ativar session.use_strict_mode é mandatório para segurança geral das sessões. A todos os sites é recomendado mantê-lo ativado. Veja o código em session_create_id() para mais detalhes.
Nota: O timestamp de expiração é informado em relação à hora do servidor, que não necessariamente coincide com o horário do navegador do cliente.
session.cache_limiter
string
session.cache_expire
integer
session.use_trans_sid
boolean
Nota: Gerenciamento de sessões baseadas em URLs tem riscos de segurança adicionais comparados ao gerenciamento baseado em cookies. Usuários podem enviar uma URL que contenha uma ID de sessão ativa para seus amigos por e-mail ou usuários podem salvar uma URL que contenha uma ID de sessão em seus bookmarks e acessar seu site sempre com a mesma ID de sessão, por exemplo. Desde o PHP 7.1.0 uma URL completa, por exemplo https://php.net/, é manipulada pelo recurso trans sid. Versões anteriores do PHP manipulavam apenas URLs relativas. Alvos de rewrite estão definidos em session.trans_sid_hosts.
Nota: Antes do PHP 7.1.0 url_rewriter.tags era utilizada para essa funcionalidade. Desde o PHP 7.1.0, fieldset não é mais considerada uma tag especial.
session.trans_sid_hosts
string
session.bug_compat_42
boolean
Nota: Removido no PHP 5.4.0.
session.bug_compat_warn
boolean
Nota: Removido no PHP 5.4.0.
session.sid_length
integer
Nota de compatibilidade: Utilize 32 para que session.hash_func=0 (MD5) e session.hash_bits_per_character=4, session.hash_func=1 (SHA1) e session.hash_bits_per_character=6. Utilize 26 para que session.hash_func=0 (MD5) e session.hash_bits_per_character=5. Utilize 22 para que session.hash_func=0 (MD5) e session.hash_bits_per_character=6. Você precisa configurar os valores INI para ao menos 128 bits no ID de sessão. Não se esqueça de configurar o valor apropriado em session.sid_bits_per_character, de outra forma você terá um ID de sessão fraco.
Nota: Esta configuração foi introduzida no PHP 7.1.0.
session.sid_bits_per_character
integer
Nota: Esta configuração foi introduzida no PHP 7.1.0.
session.hash_function
mixed
Desde o PHP 5.3.0 também é possível especificar qualquer um dos algoritmos disponibilizados pela extensão hash (se habilitada), como sha512 ou whirlpool. A lista completa de algoritmos suportados pode ser obtida com a função hash_algos().
Nota: Esta configuração introduzido no PHP 5. Removido no PHP 7.1.0.
session.hash_bits_per_character
integer
Nota: Esta configuração introduzido no PHP 5. Removido no PHP 7.1.0.
session.upload_progress.enabled
boolean
session.upload_progress.cleanup
boolean
Nota: É altamente recomendável manter esse recurso ligado.
session.upload_progress.prefix
string
session.upload_progress.name
string
session.upload_progress.freq
mixed
session.upload_progress.min-freq
integer
session.lazy_write
boolean
A configuração register_globals influencia em como as variáveis de sessão são guardadas e restauradas.
O progresso de upload não será registrado, a não ser que session.upload_progress.enabled esteja habilitado e a variável $_POST[ini_get("session.upload_progress.name")] esteja definida. Veja Progresso de Upload em sessões para mais detalhes dessa funcionalidade.