WE-Sessionmanagement


In webEdition 6.3.9 wurde eine eigene Sitzungsverwaltung integriert.

Wann sollte man die Sitzungsverwaltung aktivieren


Generell sollte die Verwendung der Sitzungsverwaltung keinen Nachteil mit sich bringen. Gerade in Shared-Hosting Umgebungen hat man normalerweise wenig Kontrolle darüber wo die Sitzungen gespeichert werden, wie diese gesichert sind gegen unbefugten Zugriff. Auch läßt sich die maximale Speicherdauer der Sitzung nicht festlegen. (Siehe dazu auch [[webedition:administration:security|"Sitzung beim Logout löschen"]])
Teilweise wird die Sitzungsverwaltung von Hostern in Memory-Caches (memcache) ausgelagert, die teilweise nicht ausreichend gegen parallelen Zugriff gesichert sind. Es kann hierbei zu Datenverlust kommen!

Einstellungen der Sitzungsverwaltung


Gültigkeit der Sitzung


Stellen Sie hier ein, wann die Sitzung enden soll. Erfolgt von einem eingeloggten Kunden innerhalb dieser Zeitspanne keine Seitenaufruf, werden alle Sitzungsdaten gelöscht und damit der Kunde automatisch ausgeloggt. Er muß sich danach erneut anmelden.

=== Sitzung für jeden Benutzer verschlüsseln ===
Es gibt hier 3 mögliche Einstellungen:
* nein
* Transparent
* Cookie

== nein ==
Wird keine Verschlüsselung gewählt, werden die Sitzungsdaten unverschlüsselt, aber gzip-gepackt in der Datenbank gespeichert. Es ist selbst in der Einstellung "nein" ebenfalls mit Aufwand verbunden die Sitzungsgsdaten aus der DB auszulesen. Wenn Sie externe Dienste anbinden, denen Sie den Sitzungsschlüssel mitteilen um damit Zugriff auf eine Benutzersitzung zu erhalten (nicht empfohlen), dann müssen Sie diese Option aktivieren.

== Transparent ==
In der Einstellung Transparent werden die Sitzungsdaten verschlüsselt in der Datenbank gespeichert. Als Schlüssel kommen dabei, ähnlich wie bei Suhosin, Daten zum Einsatz, die der Browser von sich aus Preis gibt. Der hierbei verwendete Schlüssel ist bei allen gleichen Browsern identisch. Die Entschlüsselung ist hier nur leicht erschwert, verhindert jedoch bereits, dass externe Dienste Zugriff auf eine Benutzersitzung erhalten. Teilweiser Schutz bei fälschlich geposteten Sitzungsschlüsseln in einer URL.

== Cookie ==
In der Einstellung Cookie erhält der Browser ein zusätzliches Merkmal von webEdition das nur der Browser kennt. webEdition kann die Sitzungsdaten nicht entschlüsseln ohne das der zusätzliche Schlüsseln vom Browser geliefert wird. Wenn Sie diese Einstellung wählen, kann eine Sitzung nicht mehr gestartet werden, wenn Sie nur den Sitzungsschlüssel kennen. Es entsteht ein vollständiger Schutz der Sitzung bei fälschlich geposteten Links mit enthaltenem Sitzungsschlüssel.

Was sollte bei der Aktivierung beachtet werden


<note important>Stellen Sie sicher, dass Sie einen FTP-Zugang zum Server besitzen. Loggen Sie sich Probehalber ein um sicherzustellen dass die Daten korrekt sind. Wählen Sie für die Aktivierung einen Zeitpunkt aus, zu dem sich möglichst keine Kunden/Benutzer im System befinden. Durch die Aktivierung werden alle Kunden und Benutzer vom System abgemeldet und alle in der Sitzung gespeicherten Daten gehen verloren.
Speichern und schließen Sie vorher alle offenen Dokumente.</note>

Aktivieren Sie zunächst in den Einstellungen die Fehlerbehandlung und schalten Sie dort mindesten Warnungen zusätzlich ein. Aktivieren Sie das loggen der Fehler in der Datenbank und lassen Sie sich die Fehler an eine Email-Adresse schicken. Generell sollten Sie die Fehlerbehandlung immer aktiv lassen und dort angezeigte Fehler, sofern Sie von Ihnen verursacht sind, selbst beheben, oder Systemfehler im [[http://qa.webedition.org|Bug-Report-System]] melden.

Aktivieren Sie nun die Sitzungsverwaltung und schalten alle gewünschten Optionen ein. Speichern Sie die Einstellungen. Sie sollten noch eine Erfolgsmeldung erhalten, danach meldet webEdition, dass Sie nicht mehr im System eingeloggt sind und sich neu anmelden müssen.
Schließen Sie dazu am besten den Browser oder den entsprechenden Tab und rufen webEdition erneut auf. Melden Sie sich am System neu an. Startet webEdition, hat alles geklappt und ihre Sitzungen werden nun von webEdition verwaltet. Sollte webEdition nicht mehr starten, dann lesen Sie bitte unten Problembehebung.

Vor-/Nachteile der Sitzungsverwaltung


^ Vorteil ^ Nachteil ^
| Volle Kontrolle über die Sitzung, kein unbefugter Zugriff | Jede dynamische Seite mit einer Session baut eine DB Verbindung auf und liest die Daten von dort |
| Dauer der Sitzung konfigurierbar, Sitzungsdaten werden direkt danach gelöscht | extrem große Sitzungen benötigen viel Zeit und Speicher, was zu großen Verzögerungen beim Seitenaufruf führen kann |
| Kontrolle über die Verschlüsselung der Sitzungsdaten | |
| Vereinfachung zur Lastverteilung von webEdition-Seiten | |

Probleme beheben


Sollten Sie nach der Aktivierung der Sitzungsverwaltung keinen Zugriff mehr auf webEdition haben, können Sie somit auch die Sitzungsverwaltung nicht mehr im Backend deaktivieren.
Um wieder Zugriff auf das System zu erhalten laden Sie die Datei ''/webEdition/we/include/conf/we_conf_global.inc.php'' von dem Server herunter. Öffnen Sie die Datei in einem Editor und suchen Sie die Zeile <code php>define('SYSTEM_WE_SESSION', true);</code> und ändern Sie diese in <code php>define('SYSTEM_WE_SESSION', false);</code>. Speichern Sie die Datei und laden Sie diese wieder auf den Server. Danach können Sie sich erneut am System einloggen.

Bitte schauen Sie im Fehler-Protokoll (''Menü Einstellungen > Fehler-Protokoll'') nach und schreiben Sie einen Fehlerbericht auf [[http://qa.webedition.org|Bug Report]]. Bitte löschen Sie das Fehlerlog nicht und hängen Sie die letzten 2-3 Fehler des Logs per Export-Funktion an den Fehlerbericht an (nach Absenden eine an den Bericht Datei anfügen).
Leider bietet PHP diverse Konfigurationsmöglichkeiten und die Hoster benutzen viele dieser Möglichkeiten, sodass es nicht möglich ist alle Kombinationen im Vorfeld zu testen.
powered by webEdition CMS