web-dev-qa-db-fra.com

Comment obtenir la valeur de domaine d'un cookie en Javascript?

En utilisant Javascript, j'aimerais obtenir la valeur domain pour un cookie spécifique.

Est-ce possible? Si c'est le cas, comment?

Pour clarifier: je ne cherche pas la valeur du cookie. Je suis sur "subdomain.domain.com" et je dois supprimer un cookie dont le nom est connu mais sa valeur de domaine est quelque chose comme ".domain.com". En bref: je voudrais obtenir la valeur de ".domain.com".

35
Wabbitseason

Désolé, tout ce que vous obtenez est ce que vous voyez dans document.cookie. Les métadonnées des cookies comme path, domain et expires ne sont pas visibles pour le code du site (ni pour JavaScript ni pour le côté serveur).

Pour lire un cookie qui est masqué par un cookie avec un domain ou path plus spécifique, la seule chose que vous pouvez faire est de charger une page pour laquelle le cookie plus spécifique est out- de la portée, et lisez-le à partir de là.

Si, comme vous le dites, il vous suffit de supprimer un cookie, vous pouvez essayer de supprimer le cookie à chaque niveau de spécificité possible, par exemple:

    document.cookie= 'foo=;domain=sub.domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';
    document.cookie= 'foo=;domain=domain.example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';
    document.cookie= 'foo=;domain=example.com;expires=Sat, 01-Jan-2000 00:00:00 GMT';

et de même avec la variable path. Vous pouvez mettre cela dans une boucle imbriquée pour chaque chemin et partie de domaine, en divisant sur . pour le domaine et / pour le chemin.

40
bobince

Vous ne pouvez accéder qu'aux cookies du même domaine (cela inclut les sous-domaines). Évidemment, faire autrement serait un problème de sécurité.

2
Josh Stodola