|
|
Laufzeit-Konfiguration
Das Verhalten dieser Funktionen wird
durch Einstellungen in der php.ini beeinflusst.
Weitere Details und die Definitionen der
PHP_INI_*-Konstanten finden Sie im Wo Konfigurationseinstellungen gesetzt werden können.
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_handler definiert den Namen der
Routine, die benutzt wird, um die Daten zu speichern und abzurufen, die
mit der Session in Verbindung stehen. Grundeinstellung
files. Zu beachten ist, dass einzelne Erweiterungen
ihre eigenen save_handler registrieren können. Welche
Routinen registriert sind, kann auf Basis der jeweiligen Installation
mit phpinfo ermittelt werden. Siehe auch
session_set_save_handler.
-
session.save_path
string
-
session.save_path definiert das Argument, das an die
Speicherroutine übergeben wird. Wenn Sie die standardmäßige
files-Routine wählen, ist das der Pfad, unter dem die Dateien erzeugt
werden. Siehe auch session_save_path.
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 gesestzt
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.
Warnung
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.
Achtung
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 64^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.name definiert den Namen der Session, der als
Cookie-Name verwendet wird. Grundeinstellung
PHPSESSID. Siehe auch
session_name.
-
session.auto_start
boolean
-
session.auto_start definiert, ob das Session-Modul zu
Beginn einer Anfrage automatisch eine Session startet. Grundeinstellung
0 (deaktiviert).
-
session.serialize_handler
string
-
session.serialize_handler definiert den Namen der
Routine, die benutzt wird, um Daten zu serialisieren/deserialisieren.
Unterstützt werden das PHP-Serialisierungsformat (Name
php_serialize), die internen PHP-Formate (Namen
php und php_binary) und WDDX (Name
wddx). WDDX steht nur zur Verfügung, wenn PHP mit
WDDX support kompiliert wurde.
php_serialize steht ab PHP 5.5.4. zur Verfügung.
php_serialize verwendet intern die einfachen
serialize/unserialize-Funktionen und hat nicht die Einschränkungen, die
php und php_binary haben. Ältere
Serialisierungsroutinen können aus $_SESSION weder numerische Indizes
speichern, noch alphanumerische Indizes, die Sonderzeichen
(| und !) enthalten. Verwenden Sie
php_serialize um Fehler wegen solcher Indizes am Ende
des Skripts zu vermeiden. Grundeinstellung php.
-
session.gc_probability
integer
-
session.gc_probability wird in Verbindung mit
session.gc_divisor dazu verwendet, die
Wahrscheinlichkeit zu regeln, mit der die gc-Routine (gc=garbage
collection, Speicherbereinigung) gestartet wird. Grundeinstellung
1. Siehe auch session.gc_divisor.
-
session.gc_divisor
integer
-
session.gc_divisor definiert gekoppelt mit
session.gc_probability die Wahrscheinlichkeit, mit
der die gc-Routine (gc=garbage collection, Speicherbereinigung) bei
jeder Initialisierung einer Session gestartet wird. Die
Wahrscheinlichkeit errechnet sich aus gc_probability/gc_divisor. 1/100
bedeutet z.B., dass die gc-Routine bei jeder Anfrage mit einer
Wahrscheinlichkeit von 1% gestartet wird. Grundeinstellung
100.
-
session.gc_maxlifetime
integer
-
session.gc_maxlifetime definiert die Anzahl der
Sekunden, nach denen Daten als 'garbage' ('Müll') betrachtet und
möglicherweise entsorgt werden. Die Speicherbereinigung kann zu Beginn
einer Session durchgeführt werden (abhängig von session.gc_probability und
session.gc_divisor).
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.referer_check enthält die Zeichenkette, auf
die Sie jeden HTTP-Referer überprüfen wollen. Wenn der Referer vom
Client gesendet und die Zeichenkette nicht gefunden wurde, wird die
eingebettete Session-ID als ungültig gekennzeichnet. Grundeinstellung
ist eine leere Zeichenkette.
-
session.entropy_file
string
-
session.entropy_file gibt den Pfad zu einer externen
Quelle (Datei) an, die bei der Erzeugung einer Session-ID als
zusätzliche Entropiequelle verwendet wird. Beispiele sind
/dev/random oder /dev/urandom, die
auf vielen Unix-Systemen zur Verfügung stehen.
Diese Einstellung wird unter Windows seit PHP 5.3.3 unterstützt. Wenn
session.entropy_length auf einen von Null
verschiedenen Wert gesetzt wird, verwendet PHP die Windows-Zufalls-API
als Entropie-Quelle.
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.entropy_length definiert die Anzahl der
Bytes, die von der oben spezifizierten Datei gelesen werden.
Grundeinstellung 32 (deaktiviert).
Entfernt in PHP 7.1.0.
-
session.use_strict_mode
boolean
-
session.use_strict_mode definiert ob das Modul den
strikten Modus für die Session-ID verwendet. Wenn dieser Modus aktiviert
ist, akzeptiert das Modul keine Session-ID, die nicht initialisiert ist.
Falls ein Browser eine uninitialisierte Session-ID sendet, wird eine
neue Session-ID zum Browser gesendet. Im strikten Modus sind Anwendungen
vor der Übernahme der Session durch Session-Fixation geschützt.
Grundeinstellung 0 (deaktiviert).
-
session.use_cookies
boolean
-
session.use_cookies definiert, ob das Modul Cookies
verwendet, um die Session-ID clientseitig zu speichern. Grundeinstellung
1 (aktiviert).
-
session.use_only_cookies
boolean
-
session.use_only_cookies definiert, ob das Modul
nur Cookies verwendet, um die
Session-ID clientseitig zu speichern. Mit Aktivierung dieser Einstellung
wird möglichen Angriffen durch Übermittlung von Session-IDs in URLs
vorgebeugt. Diese Einstellung wurde in PHP 4.3.0 hinzugefügt. Ab PHP
5.3.0 ist die Grundeinstellung 1 (aktiviert).
-
session.cookie_lifetime
integer
-
session.cookie_lifetime definiert die
Cookie-Lebensdauer, die an den Browser geschickt wird, in Sekunden. Der
Wert 0 bedeutet "bis der Browser geschlossen wird." Grundeinstellung
0. Siehe auch
session_get_cookie_params und
session_set_cookie_params.
Hinweis:
Der Verfalls-Zeitstempel wird relativ zur Serverzeit gesetzt, die nicht
unbedingt mit der Browserzeit des Clients übereinstimmt.
-
session.cookie_path
string
-
session.cookie_path definiert den Pfad, der im
Session-Cookie gesetzt wird. Grundeinstellung /.
Siehe auch session_get_cookie_params und
session_set_cookie_params.
-
session.cookie_domain
string
-
session.cookie_domain definiert die Domain, die im
Session-Cookie gesetzt wird. In der Grundeinstellung überhaupt keine,
was bedeutet, dass entsprechend der Spezifikation für Cookies der
Hostname des Servers verwendet wird, der das Cookie erzeugt hat. Siehe
auch session_get_cookie_params und
session_set_cookie_params.
-
session.cookie_secure
boolean
-
session.cookie_secure definiert, ob Cookies nur über
sichere Verbindungen geschickt werden sollen. Grundeinstellung
off. Diese Einstellung wurde in PHP 4.0.4
hinzugefügt. Siehe auch session_get_cookie_params
und session_set_cookie_params.
-
session.cookie_httponly
boolean
-
session.cookie_httponly markiert das Cookie als nur
über das HTTP-Protokoll zugänglich. Das bedeutet, dass für
Skriptsprachen wie z.B. JavaScript nicht zugänglich ist. Diese
Einstellung kann helfen, Identitätsdiebstahl durch XSS-Angriffe zu
reduzieren (obwohl es nicht von allen Browsern unterstützt wird).
-
session.cache_limiter
string
-
session.cache_limiter definiert die Methode der
Cacheverwaltung, die bei Session-Seiten benutzt wird. Das kann einer der
folgenden Werte sein: nocache,
private, private_no_expire oder
public. Grundeinstellung nocache.
Informationen über die Bedeutung dieser Werte finden Sie in der
session_cache_limiter-Dokumentation.
-
session.cache_expire
integer
-
session.cache_expire definiert in Minuten, wie lange
Session-Seiten im Cache bleiben. Bei nocache ist diese Angabe
wirkungslos. Grundeinstellung 180. Siehe auch
session_cache_expire.
-
session.use_trans_sid
boolean
-
session.use_trans_sid bestimmt ob transparente
SID-Unterstützung aktiviert ist oder nicht. Grundeinstellung
0 (deaktiviert).
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.
-
session.trans_sid_tags
string
-
session.trans_sid_tags gibt an, welche HTML Tags
umgeschrieben werden, um die Session-ID zu enthalten, wenn transparente
SID-Unterstützung aktiviert ist. Die Voreinstellung ist
a=href,area=href,frame=src,input=src,form=.
form ist ein besonderes Tag. <input hidden="session_id" name="session_name">
wird als Form-Variable hinzugefügt.
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.trans_sid_hosts gibt an, welche Hosts umgeschrieben
werden, um die Session-ID zu enthalten, wenn transparente SID-Unterstützung
aktiviert ist. Die Voreinstellung ist $_SERVER['HTTP_HOST'].
Mehrere Hosts können durch "," getrennt angegeben werden; Leerzeichen sind
nicht erlaubt. Beispiel: php.net,wiki.php.net,bugs.php.net.
-
session.bug_compat_42
boolean
-
Die PHP-Versionen bis 4.2.3 haben eine undokumentierte Funktion/einen
undokumentierten Fehler, der es Ihnen gestattet, eine Session-Variable
im globalen Bereich zu initialisieren, obwohl register_globals deaktiviert ist.
Ab Version 4.3.0 gibt PHP bei Verwendung dieser Funktion eine Warnung
aus, wenn zusätzlich session.bug_compat_warn
aktiviert ist. Diese Funktion/dieser Fehler kann durch Deaktivieren
dieser Einstellung deaktiviert werden.
Hinweis:
Entfernt in PHP 5.4.0.
-
session.bug_compat_warn
boolean
-
Die PHP-Versionen bis 4.2.3 haben eine undokumentierte Funktion/einen
undokumentierten Fehler, der es Ihnen gestattet, eine Session-Variable
im globalen Bereich zu initialisieren, obwohl register_globals deaktiviert ist.
Ab Version 4.3.0 gibt PHP bei Verwendung dieser Funktion eine Warnung
aus, wenn sowohl session.bug_compat_42 als
auch session.bug_compat_warn
aktiviert sind.
Hinweis:
Entfernt in PHP 5.4.0.
-
session.sid_length
integer
-
session.sid_length erlaubt die Angabe der Länge der
Session-ID-Zeichenkette. Diese Länge kann zwischen 22 und 256 liegen.
Die Voreinstellung ist 32. Wird Kompatibilität benötigt, kann 32, 40, etc.
angegeben werden. Längere Session-IDs sind schwerer zu erraten. Wenigstens
32 Zeichen werden empfohlen.
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
-
session.sid_per_character erlaubt die Angabe der Anzahl
der Bits in kodierten Session-ID-Zeichen. Die möglichen Werte sind '4'
(0-9, a-f), '5' (0-9, a-v) und '6' (0-9, a-z, A-Z, "-", ",").
Die Voreinstellung ist 4. Mehr Bits ergeben stärkere Session-IDs.
5 wird für die meisten Umgebungen empfohlen.
Hinweis:
Diese Einstellung wurde in PHP 7.1.0 eingeführt.
-
session.hash_function
mixed
-
session.hash_function gibt Ihnen die Möglichkeit, den
Prüfsummen-Algorithmus für die Erzeugung von Session-IDs selbst zu
bestimmen. '0' bedeutet MD5 (128 Bit) und '1' bedeutet SHA-1 (160 Bit).
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
-
session.hash_bits_per_character gibt Ihnen die
Möglichkeit, zu definieren wieviele Bit bei der Umwandlung der binären
Prüfsummen-Daten in etwas Lesbares in jedem Zeichen gespeichert werden.
Mögliche Werte sind '4' (0-9, a-f), '5' (0-9, a-v) und '6' (0-9, a-z,
A-Z, "-", ",").
Hinweis:
Dies wurde in PHP 5 eingeführt. Entfernt in PHP 7.1.0.
-
session.upload_progress.enabled
boolean
-
Aktiviert die Überwachung des Upload-Fortschritts und füllt die
entsprechende $_SESSION-Variable. Grundeinstellung 1
(aktiviert).
-
session.upload_progress.cleanup
boolean
-
Löscht die Fortschritts-Informationen, sobald alle POST-Daten gelesen
wurden (also der Upload abgeschlossen ist). Grundeinstellung 1
(aktiviert).
Hinweis:
Es wird dringend empfohlen diese Funktion aktiviert zu lassen.
-
session.upload_progress.prefix
string
-
Ein Präfix für den Namen des Schlüssels für den Upload-Fortschritt im
$_SESSION-Array. An diesen wird der Wert von
$_POST[ini_get("session.upload_progress.name")]
angehängt, um einen eindeutigen Schlüssel zu erhalten.
Grundeinstellung "upload_progress_".
-
session.upload_progress.name
string
-
Der Name des Schlüssels im $_SESSION-Array, in
welchem die Fortschritts-Informationen gespeichert werden sollen. Siehe
auch session.upload_progress.prefix.
Falls $_POST[ini_get("session.upload_progress.name")]
nicht übergeben wird oder nicht verfügbar ist, wird kein
Upload-Fortschritt aufgezeichnet.
Grundeinstellung "PHP_SESSION_UPLOAD_PROGRESS".
-
session.upload_progress.freq
mixed
-
Definiert, wie oft die Fortschritts-Information aktualisiert werden
soll. Dieser Wert kann entweder in Bytes (d.h. Aktualisierung nachdem
eine bestimmte Anzahl an Bytes empfangen wurde) oder in Prozent (d.h.
Aktualisierung nachdem eine bestimmte Prozentzahl der gesamten
Dateigröße empfangen wurde) angegeben werden.
Grundeinstellung "1%".
-
session.upload_progress.min_freq
integer
-
Die Zeit, die mindestens zwischen zwei Aktualisierungen vergehen muss.
Grundeinstellung "1" (eine Sekunde).
-
session.lazy_write
boolean
-
Falls session.lazy_write auf 1 gesetzt ist, werden
Daten nur gespeichert, nachdem sie sich geändert haben. Grundeinstellung
1 (aktiviert).
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.
|