El comportamiento de estas funciones se ve afectado por la configuración de php.ini.
Nombre | Por defecto | Cambiable | Historial de cambios |
---|---|---|---|
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 | Disponible 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 | Disponible desde PHP 4.0.4. |
session.cookie_httponly | "" | PHP_INI_ALL | Disponible desde PHP 5.2.0. |
session.use_strict_mode | "0" | PHP_INI_ALL | Disponible desde PHP 5.5.2. |
session.use_cookies | "1" | PHP_INI_ALL | |
session.use_only_cookies | "1" | PHP_INI_ALL | Disponible 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 en PHP <= 4.2.3. PHP_INI_PERDIR en PHP < 5. Disponible desde PHP 4.0.3. |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Disponible desde PHP 7.1.0. |
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Disponible desde PHP 7.1.0. |
session.sid_length | "32" | PHP_INI_ALL | Disponible desde PHP 7.1.0. |
session.sid_bits_per_character | "5" | PHP_INI_ALL | Disponible desde PHP 7.1.0. |
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Disponible desde PHP 5.4.0. |
session.lazy_write | "1" | PHP_INI_ALL | Disponible desde PHP 7.0.0. |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | Disponible desde PHP 4.0.4. Desde PHP 7.1.0 este INI ya no se utiliza en sesiones. |
session.hash_function | "0" | PHP_INI_ALL | Disponible desde PHP 5.0.0. Eliminado en PHP 7.1.0 |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Disponible desde PHP 5.0.0. Eliminado en PHP 7.1.0 |
session.entropy_file | "" | PHP_INI_ALL | Eliminado en PHP 7.1.0. |
session.entropy_length | "0" | PHP_INI_ALL | Eliminado en PHP 7.1.0. |
session.bug_compat_42 | "1" | PHP_INI_ALL | Disponible desde PHP 4.3.0. Eliminado en PHP 5.4.0. |
session.bug_compat_warn | "1" | PHP_INI_ALL | Disponible desde PHP 4.3.0. Eliminado en PHP 5.4.0. |
El sistema de administración de sesiones admite varias opciones de configuración que se pueden colocar en el fichero php.ini. Se dará una visión general breve.
session.save_handler
string
session.save_path
string
Hay un argumento opcional N para esta directiva que determina el número de niveles de directorios por donde los archivos de sesión se desplegarán. Por ejemplo, establecerlo a '5;/tmp' puede terminar en crear un archivo de sesión y ubicación como /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If . Para usar N se deben crear todos estos directorios antes de utilizarlo. Para realizar esto, existe un pequeño script tipo shell en ext/session que se llama mod_files.sh, con una versión de Windows llamada mod_files.bat. Observe también que si N se usa y es más grande que 0 no se llevará a cabo la recolección de basura automática, vea una copia de php.ini para más información. También, si usa N, asegúrese de encerrar session.save_path entre "comillas" ya que el separador (;) también se usa para comentarios en php.ini.
El módulo de almacenamiento de ficheros crea ficheros usando el modo 600 de forma predeterminada. Este valor se puede cambiar con el argumento opcional MODE: N;MODE;/path, donde MODE es la representación octal del modo. Establecer MODE no afecta al proceso umask.
Si se deja esta configuración para un directorio legilble por todo el mundo, tal como /tmp (por defecto), otros usuarios en el servidor pueden ser capaces de secuestrar sesiones obteniendo la lista de archivos de ese directorio.
Al emplear el argumento opcional de nivel de directorio N, como está descrito arriba, observe que al utilizar un valor mayor que 1 o 2 no es apropiado para la mayoría de los sitios debido al gran número de directorios requeridos: por ejemplo, un valor de 3 implica que existen 64^3 directorios en el sistema de ficheros, lo que puede resultar en un gran despredicio de escpacio e inodos.
Utilice solamente N con un valor mayor que 2 si está absolutamente seguro de que el sitio es lo suficientemente grande para requerirlo.
Nota: Antes de PHP 4.3.6, los usuarios de Windows tenían que cambiar esta variable para usar las funciones de sesiones de PHP. Se debe especificar una ruta válida, p.ej.: 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: Si diferentes scripts tienen diferentes valores de session.gc_maxlifetime pero comparten la misma ubicación para almacenar la información de sesión, la información del script con el mínimo valor será limpiada. En este caso use esta directiva junto con session.save_path.
session.referer_check
string
session.entropy_file
string
Nota: Eliminado en PHP 7.1.0. A partir de PHP 5.4.0 session.entropy_file usa de forma predeterminada /dev/urandom o /dev/arandom si están disponibles. En PHP 5.3.0, esta directiva se deja vacía por omisión.
session.entropy_length
integer
session.use_strict_mode
boolean
Nota: Es obligatoria habilitar session.use_strict_mode por seguridad general de sesión. Todos los sitios están advertidos de esto. Véase el código de ejemplo de session_create_id() para más detalles.
Nota: La marca de tiempo de caducidad se establece relativa a la hora del servidor, la cúal no es necesariamente la misma que la hora del navegador del cliente.
session.cache_limiter
string
session.cache_expire
integer
session.use_trans_sid
boolean
Nota: La administración de sesiones basadas en URL tiene riesgos de seguridad adicionales comparada con la administración de sesiones basdas en cookies. Los usuarios pueden enviar una URL que contenga un ID de sesión activo a sus amigos mediante email o los usuarios pueden guardar una URL que contenga una ID de sesión en sus marcadores y acceder a su sitio siempre con el mismo ID de sesión, por ejemplo. Desde PHP 7.1.0, una ruta de URL completa, p.ej. https://php.net/, es manejada por la característa trans sid. Versiones anteriores de PHP manejaban únicamente rutas de URL relativas. Los 'hosts' objetivos de reescritura están definidos por session.trans_sid_hosts.
Nota: Antes de PHP 7.1.0, url_rewriter.tags se utilizaba para este propósito. Desde 7.1.0, fieldset ya no se considera una etiqueta especial.
session.trans_sid_hosts
string
session.bug_compat_42
boolean
Nota: Eliminado en PHP 5.4.0.
session.bug_compat_warn
boolean
Nota: Eliminado en PHP 5.4.0.
session.sid_length
integer
Nota sobre la compatibilidad: Use 32 para session.hash_func=0 (MD5) y session.hash_bits_per_character=4, session.hash_func=1 (SHA1) y session.hash_bits_per_character=6. Use 26 para session.hash_func=0 (MD5) y session.hash_bits_per_character=5. Use 22 para session.hash_func=0 (MD5) y session.hash_bits_per_character=6. Se deben cofigurar valores INI para tener al menos 128 bits en ID de sesión. No olvide establecer el valor apropiado en session.sid_bits_per_character, de lo contrario se tendrá un ID de sesión más débil.
Nota: Este ajuste se introdujo en PHP 7.1.0.
session.sid_bits_per_character
integer
Nota: Este ajuste se introdujo en PHP 7.1.0.
session.hash_function
mixed
Desde PHP 5.3.0 también es posible especificar cualquier algoritmo porporcionado por la extensión hash (si está disponible), como sha512 o whirlpool. Una lista completa de los algoritmos soportados se puede obtener con la función hash_algos().
Nota: Este ajuste fue introducido en PHP 5.
session.hash_bits_per_character
integer
Nota: Esto fue introducido en PHP 5. Eliminado en PHP 7.1.0
session.upload_progress.enabled
boolean
session.upload_progress.cleanup
boolean
Nota: Es muy recomendado mantener esta opción habilitada.
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
El ajuste de configuración register_globals influye en cómo las variables de sesión se almacenan y se restablecen.
El progreso de subida no será registrado a no ser que session.upload_progress.enabled esté habilitado, y la variable $_POST[ini_get("session.upload_progress.name")] esté definida. Ver Session Upload Progress para más información de como funciona.