221 votes

Chrome ne supprime pas les cookies de session

Je suis en train d'essayer de définir un cookie de session en javascript de cette façon :

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

Mais Chrome ne le supprime pas même si je quitte le navigateur et le relance.

J'ai vérifié dans Firefox et Opera et les deux fonctionnent comme prévu - ils suppriment le cookie de session à la sortie du navigateur.

Est-ce que Chrome ignore simplement les règles d'expiration ?

J'ai vérifié sur plusieurs systèmes d'exploitation et j'ai découvert que le cookie de session est supprimé sur Chrome dans Windows XP et Ubuntu, mais PAS dans Mac OSX Lion.

2 votes

C'était exactement comme dans mon post, c'est-à-dire sans expiration, je ne suis pas sûr de Httponly. Je n'essaie pas de le supprimer manuellement. Le problème est que les navigateurs devraient le supprimer à la sortie, mais Chrome ne le fait tout simplement pas.

0 votes

>>> et j'ai découvert que le cookie de session est supprimé sur Chrome sous Windows XP. Non. Sous Windows XP, Chrome ne supprime pas non plus de cookie. J'utilise maintenant Windows XP et j'ai trouvé votre question parce que j'ai le même problème. La seule différence est que j'utilise ZF2 et définis les options de session via le package Session. Mais c'est de toute façon la manière habituelle en PHP - ini_set("session.cookie_lifetime", 0) et 'remember_me_seconds' => 1. Mais ça ne fonctionne pas. Firefox fonctionne bien, mais pas Chrome.

0 votes

Ne fonctionne pas pour moi, le cookie de session n'est pas effacé après la sortie, chrome v85

262voto

4 votes

Note : vous pouvez rencontrer exactement le même problème dans Firefox si vous avez sélectionné l'option "Afficher mes fenêtres et onglets de la dernière session" pour le menu déroulant "Au démarrage de Firefox" dans les options. Pour la même raison. Par conception, les cookies de session sont conservés pour aider à maintenir le flux de travail en cas de plantage du navigateur.

53 votes

Oui. Chrome et FF cassent tous les deux la fonctionnalité des cookies de session à cause de cela. Pour Chrome, le problème a été signalé : code.google.com/p/chromium/issues/detail?id=128513 et marqué comme WONTFIX. Donc évidemment, Google ne donne pas un f*** de suivre les normes web et les failles de sécurité dans Chrome et Firefox non plus. Voir bug Firefox (au moins pas fermé) : bugzilla.mozilla.org/show_bug.cgi?id=443354 Quel triste état pour ces deux navigateurs.

6 votes

w3.org/Protocols/rfc2109/rfc2109 : Max-Age Le comportement par défaut est de supprimer le cookie lorsque l'agent utilisateur se ferme.

27voto

Nikola Kolev Points 472

Je viens juste d'avoir le même problème avec un cookie qui était réglé pour expirer à la "fin de la session de navigation".

Malheureusement, ça n'a pas fonctionné alors j'ai un peu joué avec les paramètres du navigateur.

Il s'est avéré que la fonction qui mémorise les onglets ouverts lorsque le navigateur est fermé était à la source du problème. (La fonction est nommée "Au démarrage" - "Continuer là où j'ai arrêté". Du moins sur la version actuelle de Chrome).

Cela se produit également avec Opera et Firefox.

0 votes

Cela a résolu le problème immédiatement pour moi! Agréable de savoir pourquoi les choses se passent comme elles le font :)

6 votes

Inacceptable. Je ne veux pas que Chrome oublie quelles fenêtres étaient ouvertes, car trop souvent j'arrête accidentellement Chrome avec beaucoup d'onglets ouverts. (Merci OS X de me permettre de faire défiler une fenêtre qui n'a pas le focus, me faisant penser qu'elle a le focus. Mais, c'est une autre histoire). Si je dois me reconnecter, soit. Ne pas me déconnecter lorsque je quitte délibérément rend difficile de m'assurer que je ne suis pas encore connecté quelque part, ce qui peut poser un GRAND problème de sécurité.

5 votes

Au moins cette option n'est pas activée par défaut. Cette "fonctionnalité" est également mentionnée dans Google Aide : "Chrome restaurera également vos données de navigation et cookies de session.". À mon avis, cela devrait être une sous-option supplémentaire sous "Continuer là où je me suis arrêté".

23voto

NSjonas Points 1457

Je viens juste d'avoir ce problème. J'ai remarqué que même après avoir fermé mon navigateur, j'avais de nombreux processus Chrome en cours d'exécution. Il s'est avéré que chacun d'eux provenait de mon extension Chrome.

Sous les paramètres avancés, j'ai décoché 'Continuer à exécuter des applications en arrière-plan lorsque Google Chrome est fermé' et mes cookies de session ont recommencé à fonctionner comme ils le devraient.

Toujours une douleur pour tous les développeurs qui ont codé en s'attendant à ce que les cookies de session soient effacés lorsque l'utilisateur a terminé sa navigation.

0 votes

En règle générale, les "applications en arrière-plan" n'ont rien à voir avec la persistance des cookies de session (à moins peut-être que vous ayez une extension qui se souvient de vos cookies de session ?!). L'option "Continuer là où je me suis arrêté" dans les paramètres restaure également les cookies de session (comme mentionné dans une autre réponse).

2 votes

Cela fonctionne, après avoir désactivé cette option, mes cookies de session sont effacés!

0 votes

Il s'agit en effet d'une autre raison qui empêche les cookies de session d'être supprimés. Merci.

11voto

Justmyhobby Points 31

Cela peut-être dû au fait que Chrome continue de tourner en arrière-plan après avoir fermé le navigateur. Essayez de désactiver cette fonctionnalité en suivant les étapes suivantes :

  1. Ouvrez chrome://settings/
  2. Cliquez sur "Afficher les paramètres avancés ..."
  3. Naviguez jusqu'à la section Système et désactivez "Continuer à exécuter des applications en arrière-plan lorsque Google Chrome est fermé". Cela forcera Chrome à se fermer complètement et supprimera ensuite les cookies de session.

Cependant, je pense que Chrome devrait vérifier et supprimer les cookies de session précédents lors de son démarrage au lieu de la fermeture.

3voto

TimDog Points 3875

Une alternative simple est d'utiliser le nouveau objet sessionStorage. Selon les commentaires, si vous avez coché 'reprendre là où j'ai laissé', le sessionStorage persistera entre les redémarrages.

11 votes

Non, il persiste entre les redémarrages, si vous avez coché "Continuer là où je m'étais arrêté".

0 votes

TimDog : "sessionStorage persistera entre les redémarrages.", @Olli "Non, il persistera entre les redémarrages". Les gars, êtes-vous d'accord ou vous contestez ? Je ne comprends pas :) Ah, attendez, j'ai compris...

0 votes

Ne persiste pas dans Chrome 84, le drapeau "Continuer là où je me suis arrêté" est sans importance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X