it-swarm.com.de

Chrome löscht keine Session-Cookies

Ich versuche, ein Session-Cookie in Javascript so einzustellen:

document.cookie = 'name=alex; path=/'

Chrome löscht es jedoch nicht, auch wenn ich den Browser beendet und erneut gestartet habe. 

Ich habe Firefox und Opera eingecheckt und beide funktionieren wie vorgesehen - sie löschen Sitzungscookies beim Beenden des Browsers.

Ignoriert Chrome nur Ablaufregeln?

Ich habe mehrere Betriebssysteme eingecheckt und herausgefunden, dass das Session-Cookie unter Windows XP und Ubuntu unter Chrome entfernt wird, unter Mac OSX Lion jedoch NICHT. 

167
mgs
191
Jesper

Ich hatte gerade das gleiche Problem mit einem Cookie, dessen Ablauf am Ende der Browsersitzung abläuft.

Leider tat es nicht so, dass ich ein bisschen mit den Einstellungen des Browsers gespielt habe.

Es stellte sich heraus, dass die Funktion, die die geöffneten Registerkarten beim Schließen des Browsers speichert, die Ursache des Problems war. (Die Funktion heißt "Beim Start" - "An der Stelle, an der ich aufgehört habe". Zumindest bei der aktuellen Version von Chrome).

Das passiert auch bei Opera und Firefox.

25
Nikola Kolev

Ich hatte gerade dieses Problem. Ich merkte, dass selbst nachdem ich meinen Browser geschlossen hatte, viele Chromprozesse ausgeführt wurden. Es stellte sich heraus, dass diese Arbeiten jeweils aus meiner Chrom-Erweiterung stammen. 

Bei den erweiterten Einstellungen habe ich 'Continue running background apps when Google Chrome is closed' deaktiviert und meine Sitzungs-Cookies funktionierten wie gewünscht.

Nach wie vor ist es für uns alle Entwickler, die programmiert haben, zu erwarten, dass Sitzungs-Cookies gelöscht werden, nach dem Durchsuchen des Benutzers ein Problem

19
NSjonas

Dies kann daran liegen, dass Chrome nach dem Schließen des Browsers weiterhin im Hintergrund ausgeführt wird. Versuchen Sie, diese Funktion wie folgt zu deaktivieren:

  1. Chrome öffnen: // Einstellungen /
  2. Klicken Sie auf "Erweiterte Einstellungen anzeigen ...".
  3. Navigieren Sie zum Abschnitt "System" und deaktivieren Sie "Weiterführende Hintergrundanwendungen, wenn Google Chrome geschlossen wird". Dadurch wird Chrome vollständig geschlossen und die Sitzungscookies werden gelöscht.

Ich denke jedoch, Chrome sollte frühere Sitzungscookies beim Start überprüfen und löschen, anstatt sie zu schließen. 

9
Justmyhobby

Ich musste beides, ungeprüft, unter den erweiterten Einstellungen von Chrome:

  • "Ausführen von Hintergrund-Apps, wenn Google Chrome geschlossen ist"
  • "Fortsetzen, wo ich aufgehört habe", "Beim Start"
5
emottet

Eine einfache Alternative ist die Verwendung des neuen sessionStorage - Objekts. In den Kommentaren wird sessionStorage zwischen Neustarts bestehen bleiben, wenn Sie die Option "Weiter so weitermachen, wo ich aufgehört habe" gesetzt hat.

3
TimDog

Ich hatte das gleiche Problem mit "document.cookie" in Windows 8.1. Die einzige Möglichkeit, dass Chrome den Cookie löscht, war das Schließen des Task-Managers (keine wirklich ausgefallene Möglichkeit). Daher entschied ich mich, die Cookies vom Backend aus zu verwalten oder etwas zu verwenden wie "js-cookie". 

2
TurKux

Haben Sie versucht, die Hangouts-Erweiterung in Google Chrome zu entfernen? weil es Chrom zwingt, weiter zu laufen, selbst wenn Sie alle Fenster schließen.

Ich stand auch vor dem Problem, aber es wurde jetzt gelöst.

1
Salman Ali Khan

Die Lösung wäre die Verwendung von sessionStorage, FYI: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

0
Sky Yip

Ich hatte gerade das Problem, dass Chrome eine Sitzungs-ID speichert, aber mir gefällt die Idee nicht, die Option zu deaktivieren, um dort fortzufahren, wo ich aufgehört habe. Ich habe mir die Cookies für die Website angesehen und ein Sitzungs-ID-Cookie für die Anmeldeseite gefunden. Das Löschen hat mein Problem nicht behoben. Ich habe nach der Domain gesucht und festgestellt, dass in der Domain ein weiteres Sitzungs-ID-Cookie vorhanden ist. Das manuelle Löschen von both Session ID-Cookies behebt das Problem, und ich habe den Browser nicht geschlossen und erneut geöffnet, wodurch die Cookies möglicherweise wiederhergestellt wurden.

0
Lauren Tariel

Wenn Sie die Domäne für das PHP-Sitzungscookie festlegen, scheinen Browser etwa 30 Sekunden daran festzuhalten. Es scheint nicht wichtig zu sein, wenn Sie die Registerkarte oder das Browserfenster schließen.

Wenn Sie also Sitzungen wie die folgenden verwenden, kann der Cookie länger als erwartet im Browser hängen bleiben.

ini_set("session.cookie_domain", 'www.domain.com');

Die einzige Möglichkeit, den hängenden Cookie zu entfernen, besteht darin, die Codezeile zu entfernen, die die Domäne des Sitzungscookies festlegt. Achten Sie auch auf die Funktion session_set_cookie_params (). Ein Punkt, der die Domäne vorangestellt hat, scheint ebenfalls keine Auswirkung auf das Problem zu haben.

Dies kann ein PHP-Fehler sein, da PHP ein Session-Cookie (d. H. PHPSESSID=b855ed53d007a42a1d0d798d958e42c9) im Header sendet, nachdem die Sitzung zerstört wurde. Oder es könnte ein Problem mit der Server-Weitergabe sein, aber ich denke nicht, da mein Test auf einem privaten Server erfolgte.

0
SurferJoe