|
|
 |
|
|
 |
 |
 |
 |
 |
Hits gesamt: 5204048 Hits Heute: 705 max. Hits (10.07.07): 6964 User Online: 28 Scripts: 2828 |
|
|
 |
 |
 |
 |
 |
 |
|
 |
|
|
 |
|
|
 |
|
|
 |
 |
 |
 |
 |
 XML im Unternehmen. Briefing fürs IT- Management. |
|
|
 |
 |
 |
 |
 |
 |
|
 |
|
 |
 |
 |
 |
 |
Manuals > PHP >
Session Funktionen |
XCV. Session FunktionenEinführung
Die Unterstützung von Sessions in PHP bietet die Möglichkeit,
bestimmte Daten während einer Folge von Aufrufen Ihrer Website
festzuhalten. Damit können Sie persönlichere Applikationen
erstellen und Ihre Website ansprechender gestalten.
Einem Besucher wird beim Aufruf Ihrer Website eine eindeutige ID,
die sogenannte Session-ID, zugeordnet. Diese wird entweder
benutzerseitig in einem Cookie abgelegt oder in der URL
übermittelt.
Die Unterstützung von Sessions erlaubt Ihnen, eine beliebige
Anzahl von Variablen zu registrieren und diese über Anfragen
hinweg zu erhalten. Wenn ein Besucher Ihre Website aufruft,
überprüft PHP automatisch (falls session.auto_start
auf 1 gesetzt ist) oder auf Anfrage (explizit durch
session_start() oder implizit durch
session_register()), ob mit der Anfrage schon
eine bestimmte Session-ID gesendet wurde. Wenn dies der Fall ist,
wird die zuvor gespeicherte Umgebung wiederhergestellt.
| Achtung |
Falls Sie session.auto_start
aktivieren, können Sie keine Objekte in Ihre Session aufnehmen,
weil die Definition der Klasse vor dem Start der Session geladen
werden muss, damit die Objekte in Ihrer Session wiederhergestellt
werden.
|
Alle registrierten Variablen werden serialisiert, nachdem die
Anfrage beendet ist. Registrierte Variablen, die nicht definiert
sind, werden als nicht definiert gekennzeichnet. Auch bei
darauffolgenden Zugriffen werden sie nicht vom Session-Modul
definiert, außer der Benutzer definiert sie später.
Anmerkung:
Die Behandlung von Sessions wurde in PHP 4.0 eingeführt.
Anmerkung:
Bitte beachten Sie beim Arbeiten mit Sessions, dass der
Datensatz einer Session nicht angelegt wird, bevor eine
Variable mit der Funktion session_register()
registriert oder dem superglobalen Array
$_SESSION ein neuer Schlüssel hinzugefügt
wird. Das gilt auch dann, wenn eine Session mit der Funktion
session_start() gestartet wurde.
Sessions und Sicherheit
Externe Links: Session
fixation
Das Session-Modul bietet keine Garantie dafür, dass
Informationen, die Sie in einer Session speichern, nur vom
Benutzer gesehen werden können, der die Session erzeugt hat. Sie
müssen zusätzliche Maßnahmen ergreifen, um die Integrität der
Session ihrer Wichtigkeit entsprechend angemessen aktiv zu
schützen.
Schätzen Sie die Wichtigkeit der Daten ab, die in Ihren Sessions
transportiert werden und treffen Sie zusätzliche Schutzmaßnahmen
-- in der Regel bezahlen Sie dafür mit einer geringeren
Benutzerfreundlichkeit. Wenn Sie z.B. Benutzer vor einfachen
Social Engineering Tactics (Anm. des Übersetzers: Techniken der
Ausnutzung menschlicher Schwächen) schützen wollen, müssen Sie
session.use_only_cookies aktivieren. Cookies
müssen dann benutzerseitig auf jeden Fall aktiviert sein, weil
Sessions sonst nicht funktionieren.
Es gibt mehrere Wege, über die eine Sessio-ID an Dritte gelangen
kann. Eine entführte Session-ID ermöglicht diesen, auf alle Daten
zuzugreifen, die mit dieser Session-ID verbunden sind. Erstens
sind das URLs, die Session-IDs enthalten. Wenn Sie auf eine
externe Site verweisen, könnte die URL inklusive Session-ID in
den Referrer-Logs der externen Site gespeichert werden. Zweitens
kann ein aktiverer Angreifer Ihren Netzwerkverkehr abhören. Falls
Ihr Netzwerkverkehr nicht verschlüsselt ist, werden Session-IDs
im Klartext über das Netzwerk übertragen. Hier ist die Lösung,
auf Ihrem Server SSL zu implementieren und die Verwendung für
Ihre Benutzer obligatorisch zu machen.
AnforderungenDiese Erweiterung benötigt zur Erstellung keine externen Bibliotheken. Anmerkung:
Optional können Sie für die Speicherung von Sessions die von
Ralf S. Engelschall entwickelte Shared Memory Allocation (mm)
verwenden. Sie müssen dazu mm
herunterladen und installieren. Für Windows-Plattformen steht
diese Option nicht zur Verfügung. Beachten Sie, dass das
Sessionspeicherungs-Modul für mm nicht dafür garantiert, dass
gleichzeitige Zugriffe auf die selbe Session richtig gesperrt
sind. Die Verwendung eines auf Shared Memory basierenden
Dateisystems (wie z.B. tmpfs unter Solaris/Linux oder /dev/md
unter BSD) könnte für die Speicherung von Sessions in Dateien
geeigneter sein, weil sie entsprechend gesperrt sind.
Installation
Die Unterstützung von Sessions ist in PHP standardmäßig aktiviert.
Falls Sie Ihr PHP ohne Unterstützung von Sessions bauen wollen,
müssen Sie bei der Konfiguration die Option --disable-session angeben.
Um für die Speicherung von Sessions die shared memory allocation
(mm) zu benutzen, müssen Sie PHP mit der Option --with-mm[=DIR] konfigurieren.
The windows version of PHP
has built in support for this extension. You do not need to load any additional
extension in order to use these functions. Anmerkung:
Standardmäßig werden alle Daten, die zu einer bestimmten Session
gehören, in einer Datei gespeichert, die in dem Verzeichnis liegt,
das durch die INI Option session.save_path bestimmt ist. Für jede
Session wird (unabhängig davon, ob sie überhaupt Daten enthält)
eine Datai erzeugt. Das liegt daran, dass eine Session geöffnet
wird (eine Datei wird erzeugt), ohne dass jemals Daten in diese
Datei geschrieben werden. Beachten Sie, dass es sich bei diesem
Verhalten um einen Nebeneffekt der Beschränkungen beim Arbeiten mit
dem Dateisystem handelt und dass es mit einer benutzerdefinierten
Session-Speicherfunktion (wie z.B. mit einer, die eine Datenbank
verwendet) möglich ist, Sessions nicht zu verfolgen, wenn sie keine
Daten enthalten.
Laufzeit Konfiguration
Das Verhalten dieser Funktionen wird von Einstellungen
in der php.ini bestimmt.
Tabelle 1. Session-Konfigurationsoptionen | Bezeichnung | Grundeinstellung | Änderbar |
|---|
| session.save_path | "/tmp" | PHP_INI_ALL | | session.name | "PHPSESSID" | PHP_INI_ALL | | session.save_handler | "files" | PHP_INI_ALL | | session.auto_start | "0" | PHP_INI_ALL | | session.gc_probability | "1" | 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.use_cookies | "1" | PHP_INI_ALL | | session.use_only_cookies | "0" | PHP_INI_ALL | | session.referer_check | "" | PHP_INI_ALL | | session.entropy_file | "" | PHP_INI_ALL | | session.entropy_length | "0" | PHP_INI_ALL | | session.cache_limiter | "nocache" | PHP_INI_ALL | | session.cache_expire | "180" | PHP_INI_ALL | | session.use_trans_sid | "0" | PHP_INI_SYSTEM | PHP_INI_PERDIR | | session.bug_compat_42 | "1" | PHP_INI_ALL | | session.bug_compat_warn | "1" | PHP_INI_ALL | | url_rewriter.tags | "a=href,area=href,frame=src,input=src,form=fakeentry" | PHP_INI_ALL |
Um weitere Details und die Definition der PHP_INI_*-Konstanten zu
erhalten, siehe ini_set().
Das Sessionmanagementsystem unterstützt eine Anzahl von
Konfigurationsoptionen, die Sie in Ihrer php.ini setzen können.
Wir geben Ihnen dazu einen kleinen Überblick.
- session.save_handler
string
session.save_handler definiert den Namen der
Prozedur, die benutzt wird, um die Daten zu speichern und
zurückzuholen, die mit der Session in Verbindung stehen.
Grundeinstellung files. Siehe auch
session_set_save_handler().
- session.save_path
string
session.save_path definiert das Argument, das
an die Speicherprozedur übergeben wird. Wenn Sie die
standardmäßige files Prozedur wählen, ist das der Pfad, unter
dem die Dateien erzeugt werden. Grundeinstellung
/tmp. Siehe auch
session_save_path().
Für diese Anweisung gibt es ein optionales Argument N, das
die Anzahl der Verzeichnisebenen bestimmt, über die Ihre
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 Sie alle diese
Verzeichnisse vorher anlegen. In
ext/session gibt es für diesen Zweck ein
kleines Shell-Script namens mod_files.sh.
Beachten Sie, dass die automatische 'Müllentsorgung' (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). Achten Sie bei der Verwendung von N außerdem darauf,
dass Sie session.save_path zwischen
Anführungsstriche setzen, weil der Trenner
(;) in der php.ini auch für Kommentare
benutzt wird.
| Warnung |
Wenn Sie ein Verzeichnis gewählt haben, 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 Ihre Sessions entführen.
|
Anmerkung:
Benutzer von Windows müssen diese Variable ändern, um die
Session-Funktionen von PHP nutzen zu können. Stellen Sie
sicher, dass Sie einen gültigen Pfad, z.B.
c:/temp, angegeben haben.
- session.name
string
session.name spezifiziert den Namen der
Session, der als Cookie-Name verwendet wird. Grundeinstellung
PHPSESSID. Siehe auch
session_name().
- session.auto_start
boolean
session.auto_start spezifiziert, 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 Prozedur, die benutzt wird, um Daten zu
serialisieren/deserialisieren. Gegenwärtig wird ein internes
PHP-Format (Name php) und WDDX (name
wddx) unterstützt. WDDX steht nur zur
Verfügung, wenn PHP mit WDDX
support kompiliert wurde. Grundeinstellung
php.
- session.gc_probability
integer
session.gc_probability spezifiziert die
prozentuale Wahrscheinlichkeit, dass die gc (garbage collection)
Routine bei jeder Anfrage gestartet wird. Grundeinstellung
1.
- session.gc_maxlifetime
integer
session.gc_maxlifetime spezifiziert die
Anzahl der Sekunden, nach denen Daten als 'garbage' ('Müll')
betrachtet und entsorgt werden.
Anmerkung:
Falls Sie die standardmäßige dateibasierte Session-Prozedur
verwenden, muss Ihr Dateisystem die Zugriffszeiten (atime)
verfolgen. Windows FAT tut dies nicht. Sie müssen sich daher
einen anderen Weg einfallen lassen, um die 'Müllentsorgung'
Ihrer Session zu erledigen, wenn Sie an ein FAT-Dateisystem
gebunden sind oder an irgendein anderes Dateisystem, das keine
atime-Kontrolle bietet.
- 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.
- session.entropy_length
integer
session.entropy_length spezifiziert die
Anzahl der Bytes, die von der oben spezifizierten Datei gelesen
werden. Grundeinstellung 0 (deaktiviert).
- session.use_cookies
boolean
session.use_cookies spezifiziert, ob das
Modul Cookies verwendet, um die Session-ID clientseitig zu
speichern. Grundeinstellung 1 (aktiviert).
- session.use_only_cookies
boolean
session.use_only_cookies spezifiziert, ob das
Modul nur Cookies verwendet,
um die Session-ID clientseitig zu speichern. Grundeinstellung
0 (deaktiviert, für
Rückwärts-Kompatibilität). 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.
- session.cookie_lifetime
integer
session.cookie_lifetime spezifiziert 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().
- session.cookie_path
string
session.cookie_path spezifiziert den Pfad, in
dem das Session-Cookie gesetzt wird. Grundeinstellung
/. Siehe auch
session_get_cookie_params() und
session_set_cookie_params().
- session.cookie_domain
string
session.cookie_domain spezifiziert die
Domain, unter der das Session-Cookie gesetzt wird. In der
Grundeinstellung überhaupt keine. Siehe auch
session_get_cookie_params() und
session_set_cookie_params().
- session.cookie_secure
boolean
session.cookie_secure spezifiziert, 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.cache_limiter
string
session.cache_limiter spezifiziert die
Methode der Cacheverwaltung, die bei Session-Seiten benutzt wird
(none/nocache/private/private_no_expire/public).
Grundeinstellung nocache. Siehe auch
session_cache_limiter().
- session.cache_expire
integer
session.cache_expire spezifiziert 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).
Anmerkung:
In PHP 4.1.2 oder darunter wird sie durch compilieren mit
--enable-trans-sid aktiviert. Ab PHP
4.2.0 ist das Feature trans-sid immer eincompiliert.
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.
- session.bug_compat_42
boolean
Die PHP-Versionen bis 4.2.0 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.
- session.bug_compat_warn
boolean
Die PHP-Versionen bis 4.2.0 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.
- url_rewriter.tags
string
url_rewriter.tags bestimmt, wenn
Unterstützung für transparente SID aktiviert ist, welche
HTML-Tags so umgeschrieben werden, dass sie die Session-ID
beinhalten. Grundeinstellung
a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=
Anmerkung:
Wenn Sie XHTML-konform sein wollen, müssen Sie den
form-Eintrag entfernen und Ihre
Formularfelder zwischen lt;fieldset>-Tags setzen.
Die Konfigurationseinstellungen von track_vars und
register_globals
beeinflussen, wie die Session-Variablen gespeichert und
wiederhergestellt werden.
Anmerkung:
Seit PHP 4.0.3 ist track_vars immer
aktiviert.
Resource TypenDiese Erweiterung definiert keine Resource-Typen. Vordefinierte Konstanten
Folgende Konstanten werden von dieser Erweiterung definiert und
stehen nur zur Verfügung, wenn die Erweiterung entweder statisch
in PHP kompiliert oder dynamisch zur Laufzeit geladen wurde.
- SID
(string)
Konstante, die entweder den Namen und die ID der Session in der
Form "name=ID" enthält oder eine leere
Zeichenkette, falls die Session-ID in einem entsprechenden
Cookie gesetzt wurde.
BeispieleAnmerkung:
Seit PHP 4.1.0 steht $_SESSION genau wie
$_POST, $_GET,
$_REQUEST und so weiter, als globale Variable
zur Verfügung. Im Gegensatz zu
$HTTP_SESSION_VARS ist
$_SESSION immer global. Deshalb brauchen Sie
für $_SESSION nicht das Schlüsselwort global
zu verwenden. Bitte beachten Sie, dass in dieser Dokumentation
nun überall $_SESSION verwendet wird. Sie
können $_SESSION durch
$HTTP_SESSION_VARS ersetzen, wenn Sie
Letzteres bevorzugen. Beachten Sie auch, dass Sie Ihre Session
mit session_start() starten müssen, bevor die
Verwendung von $_SESSION zur Verfügung steht.
Für die Schlüssel des assoziativen
$_SESSION-Arrays gelten die selben
Beschränkungen, wie für die Bezeichnungen von regulären
Variablen in PHP, d.h. sie dürfen nicht mit einer Zahl, sondern
müssen mit einem Buchstaben oder Unterstrich beginnen. Um
weitere Deteils zu erhalten, siehe Abschnitt Variablen.
Falls register_globals
deaktiviert ist, können nur Bestandteile des globalen
assoziativen Arrays $_SESSION als
Session-Variablen registriert werden. Wiederhergestellte
Session-Variablen stehen nur im Array
$_SESSION zur Verfügung.
Aus Gründen der Verbesserung der Sicherheit und der Lesbarkeit
des Codes wird die Verwendung von $_SESSION
(oder $HTTP_SESSION_VARS bei PHP 4.0.6 oder
niedriger) empfohlen. Mit $_SESSION werden die
Funktionen session_register(),
session_unregister() und
session_is_registered() nicht benötigt. Auf
die Session-Variablen kann wie auf jede normale Variable
zugegriffen werden.
Beispiel 1.
Registrierung einer Variablen mit $_SESSION.
<?php session_start(); // Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS if (!isset($_SESSION['zaehler'])) { $_SESSION['zaehler'] = 0; } else { $_SESSION['zaehler']++; } ?>
|
|
Beispiel 2.
Aufheben der Registrierung einer Variablen mit
$_SESSION und deaktiviertem register_globals.
<?php session_start(); // Verwenden Sie bei PHP 4.0.6 oder niedriger $HTTP_SESSION_VARS unset($_SESSION['zaehler']); ?>
|
|
| Achtung |
Heben Sie NICHT die Registrierung der gesamten
$_SESSION mit
unset($_SESSION) auf, weil dies die
Registrierung von Variablen durch die Superglobale
$_SESSION deaktivieren würde.
|
Beispiel 3.
Aufheben der Registrierung einer Variablen mit aktiviertem
register_globals,
nachdem sie unter Verwendung von $_SESSION
registriert wurde.
<?php session_start(); // Ab PHP 4.3, können Sie auch einfach das vorige Beispiel benutzen. session_unregister('zaehler'); ?>
|
|
Wenn
register_globals
aktiviert ist, kann jede globalen Variable als Session-Variable
registriert werden. Beim Neustart einer Session werden diese
Variablen als entsprechende globale Variablen wiederhergestellt.
Da PHP wissen muss, welche globalen Variablen als
Session-Variablen registriert sind, muss der Benutzer Variablen
mit der Funktion session_register()
registrieren. Sie können das vermeiden, indem Sie einfach
Einträge in $_SESSION setzen.
Beispiel 4.
Registrierung einer Variablen bei aktiviertem register_globals
<?php if (! isset($_SESSION['zaehler'])) { $_SESSION['zaehler'] = 1; } else { $_SESSION['zaehler']++; } ?>
|
|
Wenn register_globals
aktiviert ist, dann referenzieren die globalen Variablen und die
Einträge von $_SESSION automatisch die selben
Werte, die in der vorherigen Instanz der Session registriert
wurden.
Es gibt einen Fehler in PHP 4.2.3 und früheren Versionen. Wenn
Sie eine neue Session-Variable mittels
session_register() registrieren,
referenzieren der Eintrag im globalen Bereich und der
$_SESSION-Eintrag bis zum nächsten
session_start() nicht den selben Wert. D.h.
eine Änderung an der neu registrierten globalen Variablen wird
nicht vom $_SESSION-Eintrag widergespiegelt.
Dies wurde in PHP 4.3 korrigiert.
Übermittlung der Session-ID
Es gibt zwei Methoden, eine Session-ID zu übermitteln:
Das Session-Modul unterstützt beide Methoden. Cookies sind
optimal, aber da sie nicht immer zur Verfügung stehen, bieten wir
auch noch eine Alternative an. Die zweite Methode hängt die
Session-ID direkt an die URLs.
PHP ist in der Lage, Links transparent umzuwandeln. Falls Sie
nicht PHP 4.2 oder höher verwenden, müssen Sie das beim
Übersetzen von PHP manuell aktivieren. Unter UNIX müssen Sie dazu
configure mit
--enable-trans-sid aufrufen. Wenn diese Option und die
Laufzeit-Option session.use_trans_sid
aktiviert sind, werden relative URIs automatisch so geändert,
dass sie die Session-ID enthalten.
Anmerkung:
Die php.ini-Anweisung arg_separator.output
ermöglicht es, die Trennung von Argumenten anzupassen. Geben
Sie dort für volle XHTML-Konformität & an.
Alternativ können Sie die Konstante SID
verwenden, die immer definiert ist. Falls der Client kein
geeignetes Session-Cookie gesendet hat, hat sie die Form
session_name=session_id. Andernfalls wird sie
zu einer leeren Zeichenkette erweitert. Aus diesem Grund können
Sie sie bedingungslos in URLs einbetten.
Das folgende Beispiel demonstriert, wie eine Variable registriert
wird und wie unter Verwendung einer SID korrekt auf eine andere
Seite verwiesen wird.
Beispiel 5.
Zählen der Seitenaufrufe eines einzelnen Benutzers
<?php if (!session_is_registered('zaehler')) { session_register('zaehler'); $zaehler = 1; } else { $zaehler++; } ?>
Hallo Besucher, Sie haben diese Seite <?php echo $zaehler; ?> Mal aufgerufen.<p>
Hier gehts <A class="nav" HREF="/manuals/php/nextpage.php?<?php echo strip_tags (SID)?>">weiter</A>
|
|
Die Funktion strip_tags() wird verwendet, um
bei der Ausgabe der SID XSS-ähnliche Angriffe zu verhindern.
Die oben gezeigte Ausgabe der SID ist nicht nötig, wenn PHP mit
--enable-trans-sid übersetzt wurde.
Anmerkung:
Bei nichtrelativen URLs wird davon ausgegangen, dass sie auf
externe Seiten zeigen und deshalb keine SID angehängt, weil es
ein Sicherheitsrisiko wäre, die SID an einen anderen Server zu
übermitteln.
Wenn Sie die Speicherung in einer Datenbank oder irgendeine
andere Art der Speicherung realisieren wollen, können Sie
session_set_save_handler() verwenden, um eine
Reihe von benutzerdefinierten Speicherfunktionen zu erzeugen.
|
|
|
 |
 |
 |
 |
 |
 |
|
 |