Klaus: Lebensdauer von Sessions?

Hallo,

mit session_start beginne ich in einem Script eingabe.php eine PHP session. Eine Lebensdauer der Session habe ich explizit nicht definiert.

Meine Anwender können auf der geladenen Seite Daten eingeben.
Jetzt bin ich leider überfragt, wie lange diese Session Gültigkeit
hat. Sprich: was passiert, wenn der Anwender eingabe.php startet,
dann aber zwei Stunden in die Kaffeepause geht? Beendet der Server
dann die Session selber, z.B. wg. fehlender Eingabe..?

Danke für Eure Infos

Klaus

  1. Hi

    Meine Anwender können auf der geladenen Seite Daten eingeben.
    Jetzt bin ich leider überfragt, wie lange diese Session Gültigkeit
    hat. Sprich: was passiert, wenn der Anwender eingabe.php startet,
    dann aber zwei Stunden in die Kaffeepause geht? Beendet der Server
    dann die Session selber, z.B. wg. fehlender Eingabe..?

    Je nach Einstellung in der php.ini. Maximal (ohne dass du es explizit änderst) nur bis der User seinen Browser beendet. Dann kann zwar sicherlich noch die Session auf dem Server existieren, jedoch wird der User nicht wieder erkannt, da das Cookie gelöscht wurde.

    Gruß

    Phil

    --
    ich bin ein nachmacher: http://www.eppstein.de
    ie:% fl:( br:& va:} ls:< fo:) rl:( n4:{ ss:| de:] js:| ch:? mo:} zu:(
    1. Hello,

      Meine Anwender können auf der geladenen Seite Daten eingeben.
      Jetzt bin ich leider überfragt, wie lange diese Session Gültigkeit
      hat. Sprich: was passiert, wenn der Anwender eingabe.php startet,
      dann aber zwei Stunden in die Kaffeepause geht? Beendet der Server
      dann die Session selber, z.B. wg. fehlender Eingabe..?

      Je nach Einstellung in der php.ini. Maximal (ohne dass du es explizit änderst) nur bis der User seinen Browser beendet. Dann kann zwar sicherlich noch die Session auf dem Server existieren, jedoch wird der User nicht wieder erkannt, da das Cookie gelöscht wurde.

      Das hängt ganz vom Browser ab. Wir sollten diese Obrigkeitshörigkeit langsam mal abstellen. Es gibt Browser am Markt, bei denen kann man (fast) alles einstellen.

      Und da M$ den Bogen mit ihren Scientologie-Techniken gerade überspannt hat, ist davpn auszugehen, dass demnächst auch einige HTTP-Clients mit allen Eintellmöglichkeiten auf den Markt kommen.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  2. Hello,

    das hängt davon ab, wieviel Automatismus Du PHP zugestehst und ob das OS die Automatismen unterstützt.

    Aúßerdem hängt es davon ab, ob Du die Freiheitsgrade "Session", "Anmeldung + Authentication", "Rechte", "Vorgänge" richtig voneinander zu trennen weißt.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  3. Jetzt bin ich leider überfragt, wie lange diese Session Gültigkeit
    hat. Sprich: was passiert, wenn der Anwender eingabe.php startet,
    dann aber zwei Stunden in die Kaffeepause geht? Beendet der Server
    dann die Session selber, z.B. wg. fehlender Eingabe..?

    Bei keiner Aktivität bzw. keinem GET/POST läuft die Session nach einer bestimmten Zeit ab.

    Die Variable für die Einstellung müsste folgende sein: session.gc_maxlifetime = "1440"

    Mehr Informationen im PHP-Handbuch: http://de.php.net/manual/de/ref.session.php

    Grüsse,

    Sky

    1. Hello,

      Jetzt bin ich leider überfragt, wie lange diese Session Gültigkeit
      hat. Sprich: was passiert, wenn der Anwender eingabe.php startet,
      dann aber zwei Stunden in die Kaffeepause geht? Beendet der Server
      dann die Session selber, z.B. wg. fehlender Eingabe..?

      Bei keiner Aktivität bzw. keinem GET/POST läuft die Session nach einer bestimmten Zeit ab.

      Die Variable für die Einstellung müsste folgende sein: session.gc_maxlifetime = "1440"

      Mehr Informationen im PHP-Handbuch: http://de.php.net/manual/de/ref.session.php

      Das ist nicht die ganze Wahrheit.
      Es wird hier lediglich auf plumpe Art und Weise das Session-Verzeichnis (session.save_path) mit einem browse(Novell,...) (Linux read r--) gescannt nach Dateien mit letzter Veränderung kleienr der aktuellen mius der maxlifetime, und das passiert nur dann, wenn die Wahrscheinlichkeit genügend hoch eingestellt ist. Sonst geschieht das eben ("wahrscheinlichkeitsgesteuert") nur aller x Mal.

      Es kann also passieren, dass eie Sessiondatei noch am nächsten Tag vorhanden ist.

      Da Sessions in PHP generell nur eine zeitgesteurte Sicherheit beitzen, da ihnen der Referenzschlüssel fehlt, kann man die Sicherheit nur über zusätzliche Mechanismen steigern. Sessions als solche bilden in PHP also nur ein bis zwei Kompnonten von drei einfach möglichen.

      Da die Zeit hier als eine Komponente mit großem Fenster (1440 Sekunden) benutzt wird, ist die Sicherheit nicht gewährleistet. Außerdem muss man ja noch mit Protokoll-Ablauschen rechnen.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau