Gestion de sessions à base de cookies

Les navigateurs et les sites de commerce électronique utilisent le protocole HTTP pour communiquer. Etant donné qu'HTTP est un protocole sans état (ce qui signifie que chaque instruction est exécutée indépendamment sans aucune connaissance des instructions qui l'ont précédée), un mode de gestion des sessions entre le navigateur et le serveur doit être mis en place car il s'agit d'un protocole sans état. Lorsque ce type de gestion de sessions est utilisé, un message (cookie) contenant les informations de l'utilisateur est envoyé au navigateur par le serveur Web. Ce cookie est renvoyé au serveur lorsque l'utilisateur tente d'accéder à certaines pages. Le cookie permet au serveur d'identifier l'utilisateur et d'extraire la session de l'utilisateur de la base de données des sessions, ce qui conserve la session de l'utilisateur. Une session à base de cookies prend fin lorsque l'utilisateur se déconnecte ou ferme le navigateur. La gestion de sessions basée sur les cookies est sécurisée et présente des avantages en terme de performances par rapport aux alternatives. Par conséquent, ce type de gestion de sessions est recommandé pour les sessions client.

Pour des raisons de sécurité, la gestion de sessions à base de cookies utilise deux types de cookies :

  • Cookie de session non sécurisé
    Utilisé pour gérer des données de session. Contient un identificateur d'activité qui pointe sur des attributs tels que la langue négociée, le magasin en cours et la devise privilégiée pour les clients lors de la création du cookie. Ce cookie peut passer entre le navigateur et le serveur dans des connexions SSL ou non. Il existe deux types de cookies de session non sécurisés :
    • Le cookie de session WebSphere Application Server est basé sur la norme de session HTTP Servlet. Les cookies. Les cookies WebSphere Application Server persistent dans la mémoire ou dans la base de données dans un déploiement multinœud. Pour plus d'informations, voir la rubrique Session management support.
    • Le cookie de session HCL Commerce est interne à HCL Commerce et n'est pas persistant dans la base de données. Tous les cookies sont conservés en mémoire sauf le cookie persistant. Il s'agit de la configuration par défaut. Cette configuration est obligatoire si la réécriture d'adresse URL est activée.
  • Cookie d'authentification sécurisé

    Utilisé pour gérer des données d'authentification. Un cookie d'authentification passe via SSL et est horodaté pour assurer une sécurité maximale. Ce cookie est utilisé pour authentifier l'utilisateur lorsqu'une instruction sensible est exécutée, Par exemple, DoPaymentCmd qui demande un numéro de carte de crédit. Il existe un risque infime que ce cookie soit volé et utilisé par un utilisateur non autorisé. Les cookies de code d'authentification sont toujours générés par HCL Commerce lorsqu'une gestion de session à base de cookies est utilisée.

Important :
  • Avant HCL Commerce version 9.1.6.0, les cookies WC_AUTHENTICATION et WC_IdentitySignature étaient les seuls cookies au jeu d'attributs sécurisés.
  • HCL Commerce Version 9.1.6.0 or laterTous les cookies de session présentent désormais le jeu d'attributs sécurisés. Ce comportement amélioré peut être désactivé, mais ce n'est pas recommandé.

Les cookies de session et de code d'authentification sont tous deux requis pour visualiser des pages sécurisées.

Pour les erreurs de cookie, CookieErrorView est appelé dans les circonstances suivantes :

  • L'utilisateur s'est connecté à partir d'un autre emplacement à l'aide du même ID de connexion et la connexion multiple n'est pas activée.
  • Le cookie est endommagé, altéré ou les deux.
  • Si la valeur true est affectée à la réception des cookies et que le navigateur de l'utilisateur ne prend pas en charge les cookies.
Avertissement : Certains navigateurs ont des fonctions qui préservent les cookies de session dans les sessions de navigateur. Par exemple, l'option Reprendre où vous avez arrêté de Google Chrome. Bien que ces configurations ne soient pas des configurations par défaut et qu'elles requièrent des utilisateurs pour les activer explicitement, elles peuvent créer des problèmes de confidentialité lorsque le navigateur est utilisé dans un environnement public tel qu'un cybercafé.

Si le navigateur est configuré pour ne pas détruire les cookies de session lorsqu'il est fermé, les cookies qui sont utilisés pour l'identification et l'authentification utilisateur restent actifs après le redémarrage du navigateur. Dans le cas d'un utilisateur enregistré, l'utilisateur reste connecté. Dans le cas d'un utilisateur invité, toutes les ressources qui sont associées à l'utilisateur, telles que les paniers en attente, les commandes ou les adresses, restent associées à la session dans le navigateur. Ce comportement est causé par le navigateur qui ne supprime pas les cookies de session, et il affecte tous les sites qui sont pas consultés depuis le navigateur de la même façon.

Dans la configuration par défaut pour HCL Commerce, lorsqu'un utilisateur s'enregistre ou se connecte, les ressources qui sont associées à l'utilisateur invité avant la connexion sont transférées au compte utilisateur enregistré. Ces ressources incluent les adresses, les commandes et les articles présélectionnés. Ce scénario peut être problématique si le navigateur est partagé et s'il n'est pas configuré pour détruire les cookies de session à la fermeture. Par exemple, un utilisateur invité peut passer une commande et fermer le navigateur. Le jour suivant, une autre personne peut ouvrir le même navigateur et se connecter. Etant donné que la session de l'utilisateur invité reste active, ses ressources, y compris la commande passée et les adresses utilisées, sont associées à l'utilisateur enregistré qui s'est connecté.

Les options suivantes permettent d'éviter ce scénario :

  1. Personnalisez la commande MigrateUserEntriesCmd, qui est utilisée pour faire migrer les adresses, les commandes et les articles présélectionnés de la session d'utilisateur invité en cours vers l'utilisateur qui se connecte. Vous pouvez personnaliser la commande afin que certaines ressources ne soient pas copiées en remplaçant la méthode par une implémentation vide.
  2. Après qu'un utilisateur invité a passé une commande, émettez automatiquement la commande de déconnexion pour réinitialiser la session de l'utilisateur invité en session d'utilisateur générique.

Les cookies de session préservés ne constituent pas la même préoccupation pour les utilisateurs enregistrés car ces clients peuvent utiliser le lien de déconnexion pour effacer les informations relatives à leur session.

Les navigateurs s'exécutant sur des périphériques mobiles ou personnels, tels que des téléphones ou des tablettes, présentent le même problème que les clients qui utilisent un navigateur dans un environnement public. Ces types de périphérique ne sont généralement pas partagés et ne présentent donc pas les mêmes problèmes de confidentialité. Toutefois, les clients qui achètent sur des périphériques mobiles ou personnels ne ferment généralement pas leur application de navigateur lorsqu'ils ont terminé de consulter un site, les cookies de session ne sont donc pas supprimés. Les options fournies pour protéger la confidentialité des clients dans un environnement public s'appliquent également aux navigateurs exécutés sur des périphériques mobiles ou personnels.

Cookies de session HCL Commerce

Le tableau suivant répertorie les cookies de sessions de HCL Commerce. Tous ces cookies sont essentiels au fonctionnement de HCL Commerce. Vous ne pouvez pas désactiver ces cookies. Les cookies de sessions ne sont pas persistants.
Cookies de session HCL Commerce
Nom du cookie Description
_AN_CGID_COOKIE Stocke les catégories visitées par un utilisateur, qui sont ensuite utilisées par les balises d'analyse suivantes : balise du produit, balise du panier et balise de commande.
REFERRER Valeur de referer dans l'en-tête HTTP.
Cookie de session WC_ACTIVEPOINTER Ce cookie contient la valeur de l'ID magasin de la session. Cette valeur est utilisée pour sélectionner le magasin qui doit exécuter l'instruction, si aucun magasin n'est spécifié dans l'URL.
  • Valeur : langId | storeId
  • Exemple : %2d1%2c10601
SESSION_COOKIEACCEPT Vérifie si le navigateur client accepte les cookies.
Cookie de session WC_AUTHENTICATION_ID HCL Commerce utilise un cookie d'authentification sécurisé pour gérer les données d'authentification. Un cookie d'authentification passe uniquement via SSL et est horodaté avec une signature pour assurer une sécurité maximale. Ce cookie est utilisé pour authentifier l'utilisateur via les connexions SSL.
  • Valeur : userId | hash (sessionKey | userId | timestamp)
  • Exemple : 3002%2cy77JGV%2btHlOwnIITNCn%2f%2fiaH2ns%3d
Cookie de session WC_GENERIC_ACTIVITYDATA Ce cookie existe uniquement s'il s'agit d'une session utilisateur générique (-1002). Ce cookie stocke les valeurs de la session, telles que l'ID magasin, l'ID langue et les contrats.
  • Valeur : activityToken | storeId | business context values
  • Exemple : [45123%3atrue%3afalse%3a0%3a4nhN%2fXerGUj5KgGYOnRBVcizyMw%3d][com.ibm.commerce.context.audit.AuditContext|1328734351734%2d2][com.ibm.commerce.store.facade.server.context.StoreGeoCodeContext|null%26null%26null%26null%26null%26null][CTXSETNAME|Store][com.ibm.commerce.context.globalization.GlobalizationContext|%2d1%26USD%26%2d1%26USD][com.ibm.commerce.catalog.businesscontext.CatalogContext|null%26null%26false%26false%26false][com.ibm.commerce.context.base.BaseContext|10601%26%2d1002%26%2d1002%26%2d1][com.ibm.commerce.context.experiment.ExperimentContext|null][com.ibm.commerce.context.entitlement.EntitlementContext|10503%2610503%26null%26%2d2000%26null%26null%26null][com.ibm.commerce.giftcenter.context.GiftCenterContext|null%26null%26null]
Cookie de session WC_SESSION_ESTABLISHED Ce cookie est créé lors de la première requête traitée par l'environnement d'exécution HCL Commerce. Par exemple, une requête non mise en cache.
  • Valeur : true
Cookie de session WC_USERACTIVITY_ID Il s'agit d'un cookie de session utilisateur passant entre le navigateur et le serveur via une connexion SSL ou non SSL. Il est utilisé pour l'identification utilisateur via les connexions non SSL. Il contient des valeurs de session utilisateur telles que l'heure de connexion de session et des informations d'identificateur de session telles que l'ID utilisateur et l'ID de magasin.
  • Valeur : cookieValue | encrypt (activityToken | cookieValue)

    Où la valeur du cookie est : userId | storeId | passwordInvalidationFlag | attemptedPasswordProtectedCommands | CloneId | logonTime | expiryTime | expiredUserId | preExpiryURL | version | forUserId | activeOrgId |

  • Exemple : %2d1002%2c10601%2cnull%2cnull%2cnull%2cnull%2cnull%2cnull%2cnull%2cnull%2csExMBJjdNXecuyL5l71eSlqxmVWzSMmWp%2fdGhAV5JRJd5QHFxL%2f9jNLYYeKI1YtswEqhrSwXXhlp%0d%0aLOcvGb1IzzsfEA0y%2bPirawTDQ6rUaXcsnDRnR0GNayuSSrKf4p%2fEdxvj1CkiM8E%3d
Cookie LTPA2

Cookie WebSphere Application Server

Ce cookie est utilisé lorsque HCL Commerce est activé pour une connexion unique avec le centre de documentation d'autres applications WebSphere.
WC_EdgeCacheComponent_storeId Utilisé pour Edge Caching.
WC_identitySignature Cookie de session di Centre de gestion.
fulfillmentCenterId Centre de distribution sélectionné dans Accelerator.
LtpaToken2  Jeton LTPA WebSphere Application Server utilisé pour l'authentification unique.
Remarque :
  • Tous les cookies de session, sauf WC_SESSION_ESTABLISHED, sont utilisables dans l'environnement de prévisualisation du Centre de gestion. Dans l'environnement de prévisualisation, le nom du cookie de session a le préfixe WCP_. Les cookies prennent en charge les sessions et les utilisateurs dans l'environnement de prévisualisation.
  • La valeur des cookies de session est chiffrée à l'aide de la clé de chiffrement de session. Pour plus d'informations, voir ../tasks/tsechangesessionkey.html.

Cookies du magasin type Aurora

Le tableau suivant répertorie les cookies du magasin type Aurora.
Cookies du magasin type Aurora
Nom du cookie Description
analyticsFacetAttributes Liste des facettes sur lesquelles le client a cliquées, ce qui met ces données à la disposition des balises d'analyse dans ces pages. Le cookie est en permanence mis à jour jusqu'à ce que le client lance une nouvelle recherche ou démarre une nouvelle session.
analyticsPreCategoryAttributes Attributs de pré-catégorie utilisés pour l'analyse.
analyticsSearchTerm Termes de recherche utilisés pour l'analyse.
CompareItems_storeId ID entrée de catalogue qui sont comparés.
priceMode Mode d'affichage des prix dans la vitrine.
searchTermHistory Historique des termes recherchés.
signon_warning_cookie Code d'erreur utilisé pour extraire les messages d'erreur.
WC_ACTIVITYDATA_userId Cookie de session créé et traité par Store server.
WC_GENERIC_ACTIVITYDATA Cookie de session créé et traité par un magasin local (migré).
WC_CartOrderId_storeId ID de commande active pour le magasin.
WC_CartTotal_orderId Sous-total des articles de commande (avant taxes et frais de port), nombre d'articles, langue, devise.
WC_DeleteCartCookie_storeId Cookie pour forcer l'actualisation des autres cookies de Mini panier.
WC_physicalStores Magasins physiques que le client sélectionne.
WC_pickUpStore ID de prélèvement de magasin sélectionné par le client.
WC_recurringOrder_orderId ID de commande récurrente.
WC_ScheduleOrder_orderId_interval Intervalle de commandes planifiées.
WC_shipTypeValue Valeur de type d'expédition : unique ou multiple.
WC_shipTypeValueOrderId ID_commande qui correspond au type de livraison.
WC_SHOW_USER_ACTIVATION_storeId Indicateur d'affichage d'un message d'activation utilisateur après l'enregistrement de l'utilisateur.
WC_OnBehalf_Role_storeId Cookie pour suivre le rôle de l'utilisateur qui a ouvert une session sur le compte d'autrui.
WC_Base_Text_Direction Ce cookie est créé quand un client définit la Direction du texte dans le panneau Langue et devise. Le cookie peut être utilisé dans HTTP et HTTPS.
  • Valeur : auto