Warum beträgt die standardmäßige Sitzungslebensdauer 24 Minuten (1440 Sekunden)?

Lesezeit: 3 Minuten

Benutzer-Avatar
Anna Völkl

Ich habe einige Nachforschungen über PHP Session Handling angestellt und bin auf das gestoßen session.gc_maxlifetime Wert von 1440 Sekunden. Ich habe mich gefragt, warum der Standardwert 1440 ist und wie er berechnet wird? Was ist die Grundlage für diese Berechnung?

Wie lange ist es sinnvoll, Sitzungen zu halten? Welche Min/Max-Werte für session.gc_maxlifetime würden Sie empfehlen? Je höher der Wert, desto anfälliger ist die Web-App für Session Hijacking, würde ich sagen.

  • Hier ist die Quellcodezeile, in der der Standardwert festgelegt ist. Diejenigen, die mit GIT vertraut sind, können möglicherweise seinen Verlauf verfolgen und vielleicht ein RFC- oder Bug-Ticket (falls vorhanden) finden.

    – Alvaro González

    5. Februar 2013 um 9:06 Uhr

  • @Anil: Diese Diskussion beantwortet meine Frage nicht.

    – Anna Völkl

    5. Februar 2013 um 10:48 Uhr

  • @ÁlvaroG.Vicario Ich habe die Änderung gefunden: github.com/php/php-src/commit/… Es gibt jedoch keine relevante zugehörige Dokumentation. 1440 war in der Tat die ursprüngliche Anzahl von Minuten für die Auszeit, also werden wir es wohl nie erfahren, es sei denn, jemand spürt Sascha Schumann auf.

    – Dai

    7. Februar 2013 um 8:08 Uhr

  • Ich habe Saschas E-Mail-Adresse gefunden und ihn diesbezüglich kontaktiert. Ich werde die Leute wissen lassen, wenn er antwortet.

    – Dai

    7. Februar 2013 um 8:13 Uhr

  • Warum hat Sascha nicht geantwortet!?

    – Denis

    20. Mai 2020 um 15:18 Uhr

Benutzer-Avatar
CXJ

Die eigentliche Antwort liegt wahrscheinlich sehr nahe bei dieser:

Zu PHP3-Tagen hatte PHP selbst keine Session-Unterstützung.

Aber eine Open-Source-Bibliothek namens PHPLIB, die ursprünglich von Boris Erdmann und Kristian Koehntopp von der NetUSE AG geschrieben wurde, stellte Sitzungen über PHP3-Code bereit.

Die Sitzungslebensdauer wurde in definiert Protokoll, nicht Sekunden. Und die Standardlebensdauer betrug 1440 Minuten oder genau einen Tag. Hier ist diese Codezeile von PHPLIB:

var $gc_time  = 1440;       ## Purge all session data older than 1440 minutes.

Sascha Schumann war zwischen 1998 und 2000 am PHPLIB-Projekt beteiligt. Zweifellos kannte er den Session-Code von PHP3.

Dann kam PHP4 im Jahr 2000 mit nativer Session-Unterstützung heraus, aber jetzt wurde die Lebensdauer in Sekunden angegeben.

Ich wette, jemand hat sich nie die Mühe gemacht, Minuten in Sekunden umzuwandeln. Wahrscheinlich handelte es sich bei dieser Person um Sascha Schumann. Sobald dieser Wert in die Zend-Engine codiert wurde, wurde er zur Konfiguration (php.ini) ebenfalls standardmäßig.

  • Es fällt auf, dass die 24 beim Wechsel der Einheit eine besondere Bedeutung bekommt. Von den gegebenen Antworten macht Ihre für mich am meisten Sinn.

    – Markus Malkusch

    15. Mai 2016 um 15:21 Uhr

  • Das ist interessant. Danke für das Teilen! 🙂

    – SysVoid

    15. Mai 2016 um 21:50 Uhr

  • Das ist wirklich interessant! Vielen Dank!

    – Anna Völkl

    16. Mai 2016 um 14:25 Uhr

  • Ein Hinweis auf die PHP4-Standardeinstellungen: github.com/php/php-src/blob/PHP-4.0/ext/session/session.c

    – CXJ

    11. August 2017 um 17:44 Uhr

  • Laut PHP-Dokumentation wird die Sitzungslebensdauer in Sekunden festgelegt: php.net/manual/en/…

    – dr_hanns

    27. Mai 2019 um 10:48 Uhr

Benutzer-Avatar
Steve Terjeson

1440 wird in einer Zeitberechnung verwendet, die Sekunden in Stunden/Tage umwandelt.

  • 1 Tag = 24 Stunden ( Stunden * 24 = 1 Tag )
  • 1 Tag = 1440 Minuten (Minuten * 60 * 24 = 1 Tag)
  • 1 Tag = 86400 Sekunden ( Sekunden * 60 * 1440 = 1 Tag )

Beispiel:

9 Tage [* 60] = 540 [* 1440] = 777600 Sekunden

Dasselbe gilt umgekehrt:

777600 Sekunden [/ 1440] = 540 [/ 60] = 9 Tage

  • Warum ist es also die Standard-Sitzungslebensdauer?

    – Félix Adriyel Gagnon-Grenier

    31. Juli 2014 um 13:52 Uhr

  • Weil es eine Mathe-Nerd-Zahl ist, die ungefähr die gleiche ist, wie die Forschung zeigt, ist die längste Zeit zwischen zwei Anfragen in derselben Sitzung (20-30 Minuten).

    – Dimitar Weselinow

    25. Juni 2015 um 10:58 Uhr

  • @dimitarveselinov Welche Forschung?

    – Markus Malkusch

    15. Mai 2016 um 15:27 Uhr


1356320cookie-checkWarum beträgt die standardmäßige Sitzungslebensdauer 24 Minuten (1440 Sekunden)?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy