Das Verhalten dieser Funktionen wird durch Einstellungen in der php.ini beeinflusst.
Name | Standard | Veränderbar | 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 | |
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 | |
session.cookie_httponly | "" | PHP_INI_ALL | Seit PHP 5.2.0 verfügbar. |
session.cookie_samesite | "" | PHP_INI_ALL | Seit PHP 7.3.0 verfügbar. |
session.use_strict_mode | "0" | PHP_INI_ALL | Seit PHP 5.5.2 verfügbar. |
session.use_cookies | "1" | PHP_INI_ALL | |
session.use_only_cookies | "1" | PHP_INI_ALL | |
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 | |
session.trans_sid_tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. |
session.trans_sid_hosts | $_SERVER['HTTP_HOST'] | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. |
session.sid_length | "32" | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. |
session.sid_bits_per_character | "4" | PHP_INI_ALL | Verfügbar seit PHP 7.1.0. |
session.upload_progress.enabled | "1" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. |
session.upload_progress.cleanup | "1" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. |
session.upload_progress.prefix | "upload_progress_" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. |
session.upload_progress.name | "PHP_SESSION_UPLOAD_PROGRESS" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. |
session.upload_progress.freq | "1%" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. |
session.upload_progress.min_freq | "1" | PHP_INI_PERDIR | Seit PHP 5.4.0 verfügbar. |
session.lazy_write | "1" | PHP_INI_ALL | Seit PHP 7.0.0 verfügbar. |
url_rewriter.tags | "a=href,area=href,frame=src,form=" | PHP_INI_ALL | Ab PHP 7.1.0 wird diese INI Einstellung nicht länger für die Session verwendet. |
session.hash_function | "0" | PHP_INI_ALL | Entfernt in PHP 7.1.0. |
session.hash_bits_per_character | "4" | PHP_INI_ALL | Entfernt in PHP 7.1.0. |
session.entropy_file | "" | PHP_INI_ALL | Entfernt in PHP 7.1.0. |
session.entropy_length | "0" | PHP_INI_ALL | Entfernt in PHP 7.1.0. |
session.bug_compat_42 | "1" | PHP_INI_ALL | Entfernt in PHP 5.4.0. |
session.bug_compat_warn | "1" | PHP_INI_ALL | Entfernt in PHP 5.4.0. |
Das Sessionmanagementsystem unterstützt eine Anzahl von Konfigurationsoptionen, die in der php.ini gesetzt werden können. Wir geben dazu einen kleinen Überblick.
session.save_handler
string
session.save_path
string
Für diese Anweisung gibt es ein optionales Argument N, das die Anzahl der Verzeichnisebenen bestimmt, über welche die Session-Dateien verteilt werden. Wird sie zum Beispiel auf '5;/tmp' gesetzt, kann das das Anlegen einer Session-Datei und Speicherstelle wie /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If bewirken. Um N verwenden zu können, müssen alle diese Verzeichnisse vorher angelegt werden. In ext/session gibt es für diesen Zweck ein kleines Shell-Script namens mod_files.sh und eine Version für Windows namens mod_files.bat. Zu beachten ist, dass die automatische Speicherbereinigung (garbage collection) nicht durchgeführt wird, wenn N verwendet wird und größer 0 ist (für weitere Informationen siehe eine Kopie der php.ini). Außerdem muss bei der Verwendung von N beachtet werden, dass session.save_path zwischen Anführungsstriche gesetzt wird, weil der Trenner (;) in der php.ini auch für Kommentare benutzt wird.
Standardmäßig erzeugt die files-Speicherroutine Dateien mit dem Modus 600. Dieser Wert kann mit dem optionalen Argument MODE geändert werden: N;MODE;/pfad, wobei MODE die oktale Darstellung des Modus ist. Die Angabe von MODE hat keine Auswirkungen auf den Prozess umask.
Wenn ein Verzeichnis gewählt wurde, für das jeder Leserechte hat, wie das z.B. bei /tmp (Grundeinstellung) der Fall ist, könnten andere Serverbenutzer mit Hilfe der Dateiliste dieses Verzeichnisses die Sessions entführen.
Wird das optionale Argument N für die Verzeichnisebenen wie oben beschrieben verwendet, ist zu beachten, dass ein Wert größer als 1 oder 2 wegen der großen Anzahl an benötigten Verzeichnissen für die meisten Websites unangemessen ist: z.B. bedeutet ein Wert von 3, dass (2 ** session.sid_bits_per_character) ** 3 Verzeichnisse im Dateisystem existieren, was eine große Verschwendung an Speicher und Inodes zur Folge haben kann.
Verwenden Sie N größer als 2 nur, wenn Sie absolut sicher sind, dass Ihre Website so groß ist, dass Sie es benötigen.
Hinweis: Vor PHP 4.3.6 mussten Benutzer von Windows diese Variable ändern, um die Session-Funktionen von PHP nutzen zu können. Es muss ein gültiger Pfad, z.B. c:/temp, angegeben werden.
session.name
string
session.auto_start
boolean
session.serialize_handler
string
session.gc_probability
integer
session.gc_divisor
integer
session.gc_maxlifetime
integer
Hinweis: Falls sich der Wert von session.gc_maxlifetime in verschiedenen Skripten unterscheidet, aber sie die Sessiondaten an der selben Stelle speichern, löscht das Skript mit dem kleinsten Wert die Daten. Verwenden Sie die Anweisung in diesem Fall zusammen mit der Anweisung session.save_path.
session.referer_check
string
session.entropy_file
string
Hinweis: Entfernt in PHP 7.1.0. Ab PHP 5.4.0 ist die Grundeinstellung für session.entropy_file /dev/urandom oder /dev/arandom, falls es verfügbar ist. In PHP 5.3.0 ist diese Konfigurationsoption in der Grundeinstellung leer.
session.entropy_length
integer
session.use_strict_mode
boolean
Hinweis: Das Aktivieren von session.use_strict_mode ist für grundsätzliche Session-Sicherheit verpflichtend. Es wird empfohlen, dass alle Sites dies aktiveren. Verdeutlichender Beispielcode kann der Dokumentation von session_create_id() entnommen werden.
Hinweis: Der Verfalls-Zeitstempel wird relativ zur Serverzeit gesetzt, die nicht unbedingt mit der Browserzeit des Clients übereinstimmt.
session.cache_limiter
string
session.cache_expire
integer
session.use_trans_sid
boolean
Hinweis: URL-basiertes Session-Management hat im Vergleich zu Cookie-basiertem Session-Management zusätzliche Sicherheitsrisiken. Benutzer können zum Beispiel eine URL, die eine aktive Session-ID enthält, per Email an Freunde schicken oder in ihren Bookmarks speichern und immer mit der selben Session-ID auf Ihre Seite zugreifen. Seit PHP 7.1.0 werden auch vollständige URL-Pfade, z.B. https://php.net/, vom trans sid Feature unterstützt. Vorherige PHP-Versionen unterstützten nur relative URL-Pfade. Rewrite-Ziel-Hosts werden durch session.trans_sid_hosts definiert.
Hinweis: Vor PHP 7.1.0, wurde url_rewriter.tags für diesen Zweck verwendet. Seit PHP 7.1.0 wird fieldset nicht länger als besonderes Tag angesehen.
session.trans_sid_hosts
string
session.bug_compat_42
boolean
Hinweis: Entfernt in PHP 5.4.0.
session.bug_compat_warn
boolean
Hinweis: Entfernt in PHP 5.4.0.
session.sid_length
integer
Hinweis zur Kompatibiliät: Verwenden Sie 32 für session.hash_func=0 (MD5) und session.hash_bits_per_character=4, session.hash_func=1 (SHA1) und session.hash_bits_per_character=6. Verwenden Sie 26 für session.hash_func=0 (MD5) und session.hash_bits_per_character=5. Verwenden Sie 22 für session.hash_func=0 (MD5) und session.hash_bits_per_character=6. Die INI Werte müssen so konfiguriert werden, dass sie wenigstens 128 bits in der Session-ID haben. Vergessen Sie nicht, session.sid_bits_per_character den entsprechenden Wert zuzuweisen; andernfalls erhalten Sie schwächere Session-IDs.
Hinweis: Diese Einstellung wurde in PHP 7.1.0 eingeführt.
session.sid_bits_per_character
integer
Hinweis: Diese Einstellung wurde in PHP 7.1.0 eingeführt.
session.hash_function
mixed
Ab PHP 5.3.0 ist es auch möglich, einen der Algorithmen zu bestimmen, die durch die Hash-Erweiterung (falls vorhanden) zur Verfügung stehen, wie z.B. sha512 oder whirlpool. Eine vollständige Liste unterstützter Algorithmen erhalten Sie mit der Funktion hash_algos().
Hinweis: Diese Einstellung wurde in PHP 5 eingeführt. Entfernt in PHP 7.1.0.
session.hash_bits_per_character
integer
Hinweis: Entfernt in PHP 7.1.0.
session.upload_progress.enabled
boolean
session.upload_progress.cleanup
boolean
Hinweis: Es wird dringend empfohlen diese Funktion aktiviert zu lassen.
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
Die Konfigurationseinstellung register_globals beeinflusst, wie die Session-Variablen gespeichert und wiederhergestellt werden.
Der Upload-Fortschritt wird nur aufgezeichnet, wenn session.upload_progress.enabled aktiviert ist und die Variable $_POST[ini_get("session.upload_progress.name")] gesetzt ist. Siehe Session Upload Progress für weitere diesbezügliche Informationen.