Meine Anwendung ist eine vollständige AJAX-Webseite mit Codigniter Framework und Memcached-Session-Handler.Sitzungsregenerierung verursacht abgelaufene Sitzung mit schnellen AJAX-Aufrufen
Manchmal sendet es viele asynchrone Aufrufe, und wenn die Sitzung ihre ID neu generieren muss (um Sicherheitsprobleme bei der Sitzungsfixierung zu vermeiden), wird das Sitzungscookie nicht schnell genug erneuert und einige AJAX-Aufrufe schlagen fehl, da die Sitzungs-ID abgelaufen ist.
Hier ein schematisches Bild, das ich das Problem offenbar zu zeigen,: deaktivieren
Ich ging über die ähnlichen Themen (zB this one), aber die Antworten nicht wirklich mein Problem lösen, kann ich nicht die Sicherheit, da nur AJAX in meiner Anwendung anruft.
Trotzdem habe ich eine Idee und ich möchte eine Meinung vor dem Hacken in die Codeigniter Session Handler Klassen: Die Idee ist es, 2 gleichzeitige Session Ids für eine Weile zu verwalten, zum Beispiel 30 Sekunden. Dies wäre eine maximale Ausführungszeit für die Anfrage. Daher würde der Server nach der Sitzungsregeneration immer noch die vorherige Sitzungs-ID akzeptieren und zu der neuen Sitzungs-ID wechseln. Mit dem gleichen Bild, das so etwas wie diese geben würde:
Welche Version von CI verwenden Sie? Dies scheint ein fortlaufender Fehler in der CI-Sitzungsbehandlung zu sein, insbesondere bei db-Sitzungen. Ich denke, die Unterstützung mehrerer Session-IDs kann als Hack funktionieren, aber es scheint, als würde es nach Ärger fragen. Können Sie einen anderen Session-Handler verwenden, vielleicht native PHP-Sessions mit Redis oder ähnlichem? Haben Sie sich auch [this thread] (https://github.com/bcit-ci/CodeIgniter/issues/3097) angesehen? – ldg
@Idg: Ich lese alle diese Threads ja. Es spricht über das Problem und CI3 (meine Version) löste es durch Deaktivieren der Sitzung Verlängerung mit AJAX-Anfragen. Das Problem ist, ich * habe nur * AJAX-Anfragen in meiner App .... –
@NicolasThery Können Sie einfach erklären, welche Art von Problem Sie haben –