Session geht verloren

Hallo,

wir beobachten momentan bei einzelnen Benutzern das Phänomen, dass während ihres aufenthaltes im Shop ihre Session verloren geht. An Hand der access.log können wir nachvollziehen dass diese Benutzer scheinbar Cookies akzeptieren, da Sie über einen gewissen Zeitraum die gleiche force_sid verwenden. Allerdings bekommen diese ab einem gewissen Zeitpunkt eine neue Session zugewiesen.

Ein kleines Beispiel:

2011-05-03 21:16:11  GET  /index.php?cl=basket&cnid=X&anid=X&listtype=list&&   HTTP/1.1  200  20590  http://www.shop.de/Kategorie/Produkt1.html
2011-05-03 21:16:13  POST /index.php?force_sid=[B]ABC[/B]&                            HTTP/1.1  301  5141   http://www.shop.de/index.php?cl=basket&cnid=X&anid=X&listtype=list&&
2011-05-03 21:16:13  GET  /index.php?cl=details&cnid=X&anid=X&listtype=list&&  HTTP/1.1  200  20409  http://www.shop.de/index.php?cl=basket&cnid=X&anid=X&listtype=list&&  
2011-05-03 21:16:15  GET  /Kategorie/?force_sid=[B]ABC[/B]                            HTTP/1.1  200  31552  -
2011-05-03 21:16:20  GET  /Kategorie/2/                                        HTTP/1.1  200  25818  http://www.shop.de/Kategorie/?force_sid=[B]ABC  
[/B]2011-05-03 21:16:29  GET  /Kategorie/Produkt2.html                             HTTP/1.1  200  10588  http://www.shop.de/Kategorie/2/  
2011-05-03 21:16:31  POST /index.php?                                          HTTP/1.1  301  1534   http://www.shop.de/Kategorie/Produkt2.html  
2011-05-03 21:16:31  GET  /index.php?cl=basket&cnid=X&anid=116&listtype=list&& HTTP/1.1  200  15094  http://www.shop.de/Kategorie/Produkt2.html
2011-05-03 21:16:33  POST /index.php?force_sid=[B]XYZ[/B]&                            HTTP/1.1  301  2078   http://www.shop.de/index.php?cl=basket&cnid=X&anid=116&listtype=list&&

Zur Erläuterung. Der Kunde hat so eben einen Artikel (Produkt1) in den Warenkorb gelegt und klickt auf “weiter einkaufen”. Der folgende Post/Get schickt ihn mit seiner aktuellen Session-ID [B]ABC [/B]zurück zum letzten Artikel. Von dort aus klickt er sich zurück zur Kategorie, danach auf Seite 2 der Kategorie und dann auf die Detailseite von Produkt2. Diesen legt er ebenfalls in den Warenkorb und wählt erneut “Weiter einkaufen”. Der abschliessende POST leitet ihn zurück zu seinem vorherigen Produkt, allerdings unter einer neuen Session-ID [B]XYZ[/B]!

Die Tatsache, dass er nur wenige Sekunden zuvor einen Artikel in den Warenkorb gelegt hat, sollte eigtl. ausschliessen dass die Session zwischenzeitlich ausgelaufen ist (Session-Lifetime 1440s).
Die Tatsache dass er zuvor, in der Liste nicht ersichtlich, schon weitere Artikel in den Warenkorb gelegt hat und die gleiche Session behalten hat, lässt annehmen dass er Cookies akzeptiert.

Ist zufällig jemanden dieses Problem ebefalls bekannt oder hat einen Tipp oder eine Idee wie dieses Phänomen zu Stande kommt?

Viele Grüße,

welche Shopversion?

Da gabs auch mal ein Problem im Zusammenhang mit Facebook, welches die Session zerstörte.

ggf. mal die Forensuche verwenden und Facebook + Warenkorb suchen

salut,

eventuell CMS-Text oder ähnliches wo händisch ein Link eingefügt wurde der eine feste Sid enthält?
Dieser Fall ist mir auch schon untergekommen.

ceau

Hallo,

vielen Dank für die Antworten.

Wir verwenden zur Zeit noch die Version 4.4.5.

Zu Facebook, die Erweiterungen sind in keiner Form aktiv. Hat also mit diesem Problem auch nichts zu tun.

Und händisch erstellte Links können wir auch ausschliessen, da es sich nur um Systemlinks handelt (In den Warenkorb, weiter einkaufen, etc.).

Viele Grüße,

Hallo Webstube,
ein ähnliches Phänomen ist mir zuletzt auch passiert allerdings verlor ich beim stöbern im shop mein Warenkorb Inhalt. Facebook ist bei mir nie aktiv gewesen…

http://www.oxid-esales.com/forum/showthread.php?t=8940

Grüße Markus

[QUOTE=markus26;56682]Hallo Webstube,
ein ähnliches Phänomen ist mir zuletzt auch passiert allerdings verlor ich beim stöbern im shop mein Warenkorb Inhalt. Facebook ist bei mir nie aktiv gewesen…

http://www.oxid-esales.com/forum/showthread.php?t=8940

Grüße Markus[/QUOTE]

Hallo Markus,

das Problem dürfte aber sicher nur bei deaktivierten Cookies aufgetreten sein?

Hallo,
die Cookies waren aktiv.

Die neue 4.5 version birgt ähnliche Probleme, siehe mein Video:
http://www.oxid-esales.com/forum/showthread.php?t=9400

Grüße Markus

Hallo,

nach langer Suche haben wir die Ursache des Problems gefunden:

#0002909: Session wird zerstört sobald sich der User-Agent ändert!

Lösung:

  • Beigefügtes Modul in den Modul-Ordner kopieren
  • Modul in der config.inc.php eintragen
    (Da es die Session überschreibt genügt es nicht das Modul im Admin-Bereich einzutragen.):

$this->aModules = array(
      'oxsession' => 'fixedsession'
);

Das Problem taucht beispielsweise bei der Nutzung bestimmter Sicherheitsprogramme (Trend Micro) auf, da dieses parallel einen Request unter anderem User-Agent ausführen. Dies führt dazu dass ein bereits gefüllter Warenkorb verloren geht und / oder ein angemeldeter Benutzer wieder ausgeloggt wird. Das wiederrum führt dazu dass der Benutzer nicht bestellen kann und somit ein Umsatzverlust entsteht!

Noch eine Anmerkung: Es ist aus Sicherheitsaspekten richtig gedacht, dem “neuen” User-Agent eine neue Session zu geben. Allerdings sollte die alte Session zumindest erhalten bleiben. Ich denke hier sollte die Usability im Vordergrund stehen.

Viele Grüße,

Danke fürs kramen bzw. Eintragen

Ich bitte darum, dass Bugs im Bugtracker auf Englisch gemeldet werden.

[QUOTE=Hebsacker;57856]Ich bitte darum, dass Bugs im Bugtracker auf Englisch gemeldet werden.[/QUOTE]

Beim nächsten Bug-Report (der garantiert kommt :slight_smile: ), gerne wieder auf Englisch.

Wobei ich der Meinung bin, da weder Bearbeiter noch Reporter “native english speaker” sind, tut es dem Verständnis gut den Bug in Muttersprache zu verfassen.

OXID hat eine Gruppe Entwickler/Coder im Ausland - die sprechen besser Englisch wie Deutsch. Daher wäre es durchaus sinnvoller, die Bugs in englisch zu melden.

Den hier wirst du auch auf englisch melden müssen, da er von den oxid entwicklern nicht verstanden wird da -> litauen :wink: sonst wird er einfach geschlossen. Ich vermute wenn du litauisch kannst, das die den bug auch in ihrer muttersprache akzeptieren :smiley:

edit: ich war mal so frei und hab in den comments dein anliegen auf englisch vorgetragen :wink:

Das fänd ich auch spannend - Bugs nur auf litauisch eintragen!

:stuck_out_tongue:

danke fürs übersetzen Christopher

Ah OK, war mir nicht bekannt. Das erklärt zumindest auch die Qualität des Quellcodes stellenweise. :slight_smile:

Danke fürs übersetzen!

Danke für den mitgelieferten Quickfix :slight_smile:

Allerdings funktioniert das so in 4.5 nicht mehr - leider kann der 4.5er nämlich oxsession nicht mehr per config->aModules erweitern.

Ich werd das gleich mal als Bug reporten, auch wenn es sich ja eigentlich eher um ein weggefallenes Hidden Feature handelt, aber trotzdem. (–> https://bugs.oxid-esales.com/view.php?id=2911 )

Also, wer 4.5 einsetz und grad verzweifelt, weil er die FixedSession nicht zum laufen bringt: daran liegts.

[QUOTE=webstube;57868]Das erklärt zumindest auch die Qualität des Quellcodes stellenweise. :-)[/QUOTE]

wieso?
Der Code wird doch nicht von litauisch auf deutsch übersetzt? :confused:

Der Code wird doch nicht von litauisch auf deutsch übersetzt?
Aber die Bugmeldungen von Englisch auf Litauisch :smiley:

Gruß
Andreas

Hallo zusammen,

hab ein ähnliches Problem, daher häng ich mich an den Thread ran.
Hab den Patch von Stubenfliege ähem webstube … soory :wink: mal installiert in der Hoffnung der Fehler löst sich…leider fehlanzeige … jedoch nicht mehr ganz so gravierend in der Konsequenz.

In unserer 4.4.8 verschwindet die force_sid bei folgendem Ablauf:

  1. Artikel in Warenkorb legen (als nicht angemeldet)
  2. Click - Warenkorb anzeigen
  3. Click - Weiter zum nächsten Schritt
  4. Anmelden email + passwort eingeben (wird auf https:// weitergeleitet)
  5. Click - Weiter zum nächsten Schritt
  6. Click - auf einen Artikel auf dem dem rechts angezeigten Warenkorb
  7. Session weg - Warenkorb leer.

Wenn ich den Zurück Button des Browser betätige ist der Warenkorb wieder voll. Das auch erst nachdem ich den Patch installiert habe. Davor war kein zurückkommen mehr möglich.

Das Problem besteht nur im Zusammenhang mit SSL. Ohne SSL gibts auch keine verlorenen Sessions.

Auffälig ist, dass nicht alle Artikel in der Warenkorbübersicht die force_sid angehängt bekommen, und ich keine Ahnung habe woher diese Willkür herrührt.

Da die FB Features ein ähnliches Verhalten an anderer Stelle hervorriefen hatte ich diese schon vorab deaktiviert.

Könnt Ihr den Fehler reproduzieren?

Beste Grüße
René

[QUOTE=beme;57926]Hallo zusammen,
Wenn ich den Zurück Button des Browser betätige ist der Warenkorb wieder voll. Das auch erst nachdem ich den Patch installiert habe. Davor war kein zurückkommen mehr möglich.
[/QUOTE]

Das klappt doch nicht immer…

Link zum Shop?