Symfony2, Konfigurieren des PDO-Sitzungsspeichers in der Datenbank

8

Für mein Symfony2-Projekt verwende ich den Sitzungsspeicher in einer Datenbank.

Also konfiguriere ich meine config.yml so:

%Vor%

Alles ist in Ordnung, wenn ich mich anmelde, wird ein Eintrag in meiner Datenbank erstellt und die Sitzungen funktionieren gut.

Aber wie kann ich die Lebensdauer meiner Sitzung definieren, wenn sie in der Datenbank ist? Warum habe ich viele Zeilen (+50) in meiner Sitzungstabelle, wenn ich nur 4 Mitglieder in meiner Anwendung habe?

Wie kann ich das konfigurieren? Ich brauche nur eine Sitzung, wenn ein Mitglied sich anmeldet.

    
Clément Andraud 21.05.2014, 13:52
quelle

2 Antworten

1

Sie können die Anzahl der Zeilen in Ihrer Sitzungstabelle verringern, indem Sie häufiger den Sitzungs-Garbage-Collector ausführen.

Ссылка

In Ihrer php.ini-Datei

session.gc_probability = 1

session.gc_divisor = 1

session.gc_maxlifetime = 36000

Mit diesen Einstellungen wird der Garbage Collector mit einer Wahrscheinlichkeit von 100% ausgeführt, was für die Produktion empfohlen wird. Sie sollten jedoch überprüfen können, ob der Garbage Collector funktioniert und die Einstellungen nach Bedarf anpassen.

    
FuzzyTree 21.05.2014, 16:02
quelle
0

Ich denke, die Anzahl der Zeilen ist nicht diktiert durch die Lebensdauer der Sitzung, zumindest nicht vollständig.

Der Hauptgrund für so viele Zeilen ist der Schutz vor Session-Hijacking. Wenn Sie also den Browser schließen und zu Ihrer Website zurückkehren, wird die Sitzung nicht nur als selbstverständlich betrachtet, sondern stattdessen als regeneriert .

Verwenden Sie FOSUserBundle für die Authentifizierung? Ich weiß sicher, dass es die Konfiguration des Session-Hijacking-Schutzes unterstützt ...

BEARBEITEN:

chrsva hat es hier erwähnt: Wie funktioniert die Symfony2-Sitzungsfixierung?

    
Jovan Perovic 21.05.2014 14:07
quelle

Tags und Links