Gestion de session
La gestion de session est une bonne pratique de lutte contre le déni de service (DoS) pour la sécurité des API. Une session représente le temps passé par un visiteur sur votre site et n’est pas liée à la durée de connexion des utilisateurs administrateurs ou des clients à leurs comptes.
Une session est une séquence de transactions de requête HTTP réseau et de réponse associées au même utilisateur. Il s’agit d’une méthode d’association d’un client (Admin) à ses données lorsqu’il accède au serveur. Les sessions sont utilisées pour établir des variables, telles que les droits d’accès et les paramètres de localisation, qui s’appliquent à chaque interaction d’un utilisateur avec une application web au cours de la session.
Taille de la session
Utilisez les paramètres de configuration suivants pour limiter la taille de session maximale pour les utilisateurs administrateurs et les visiteurs du storefront :
- Max Session Size in Admin : limite la taille maximale des sessions en octets. Utilisez
0
pour désactiver. - Max Session Size in Storefront : limite la taille maximale des sessions en octets. Utilisez
0
pour désactiver.
256000
octets (ou 256 Ko).Pour configurer la taille de session maximale, procédez comme suit
-
Dans la barre latérale Admin, accédez à Stores > Settings>Configuration.
-
Dans le panneau de gauche, développez Advanced et choisissez System.
-
Développez
-
Saisissez les nouvelles tailles de session en octets.
note warning WARNING Une valeur trop basse peut entraîner des problèmes. Si vous définissez l’une des options sous la valeur par défaut de 256000 octets, un message d’avertissement s’affiche. Si vous cliquez sur No, le système modifie la valeur en 256000
. -
Cliquez sur Save Config.
Sessions d’administrateur
Si vous dépassez la taille de session maximale, un message d’erreur s’affiche et le système consigne la contrainte de taille de session dans le répertoire var/log
.
Si vous perdez l’accès à l’administrateur après avoir défini une taille de session trop basse, utilisez l’interface de ligne de commande pour réinitialiser la configuration :
bin/magento config:set system/security/max_session_size_admin 256000
Sessions Storefront
Si vous dépassez la taille de session maximale, aucune erreur ne s’affiche, mais le système consigne la contrainte de taille de session dans le répertoire var/log
.
Validation de session
Adobe Commerce et Magento Open Source vous permettent de valider les variables de session à titre de mesure de protection contre d’éventuelles attaques de fixation de session ou tentatives d’empoisonnement ou de détournement de sessions utilisateur. Les paramètres de validation de session déterminent la manière dont les variables de session sont validées lors de chaque visite de la boutique et si l’ID de session est inclus dans l’URL de la boutique.
Pour plus d’informations techniques, voir Utilisation de Redis pour le stockage de session dans le Guide de configuration.
La validation vérifie que les visiteurs sont bien ce qu’ils disent être en comparant la valeur des variables de validation avec les données de session stockées dans les données de $_SESSION
pour l’utilisateur. La validation échoue si les informations ne sont pas transmises comme prévu et que la variable correspondante est vide. En fonction des paramètres de validation de session, si une variable de session échoue dans le processus de validation, la session cliente s’arrête immédiatement.
L’activation de toutes les variables de validation peut prévenir les attaques, mais peut également avoir un impact sur les performances du serveur. Par défaut, toutes les validations de variables de session sont désactivées. Nous vous recommandons de tester les paramètres afin de trouver la meilleure combinaison pour votre installation d’Adobe Commerce ou de Magento Open Source. L’activation de toutes les variables de validation peut s’avérer indûment restrictive et peut empêcher l’accès aux clients qui disposent de connexions Internet passant par un serveur proxy ou provenant de l’arrière d’un pare-feu. Pour en savoir plus sur les variables de session et leur utilisation, consultez la documentation d’administration système de votre système Linux®.
Pour configurer la validation de la session, procédez comme suit
-
Dans la barre latérale Admin, accédez à Stores > Settings>Configuration.
-
Dans le panneau de gauche, développez General et choisissez Web.
-
Développez
-
Définissez chacune des options de configuration :
-
Validate REMOTE_ADDR — Définissez sur
Yes
pour vérifier que l'adresse IP d'une requête correspond à ce qui est stocké dans la variable$_SESSION
. -
Validate HTTP_VIA — Définissez sur
Yes
pour vérifier que l'adresse proxy d'une requête entrante correspond à ce qui est stocké dans la variable$_SESSION
. -
Validate HTTP_X_FORWARDED_FOR — Définissez sur
Yes
pour vérifier que l'adresse de transfert d'une requête correspond à ce qui est stocké dans la variable$_SESSION
. -
Validate HTTP_USER_AGENT — Définissez sur
Yes
pour vérifier que le navigateur ou l’appareil utilisé pour accéder au magasin au cours d’une session correspond à ce qui est stocké dans la variable$_SESSION
.
-
-
Cliquez ensuite sur Save Config.
Durée de vie d’une session d’administrateur
Par mesure de sécurité, le Admin est initialement configuré pour expirer après 900 secondes (15 minutes) d’inactivité du clavier. Vous pouvez ajuster la durée de vie de la session en fonction de votre style de travail.
Pour ajuster la durée de vie d’une session d’administrateur :
-
Dans la barre latérale Admin, accédez à Stores > Settings>Configuration.
-
Faites défiler vers le bas et développez Advanced dans le panneau latéral gauche.
-
Cliquez sur Admin.
-
Développez
-
Par Admin Session Lifetime (seconds), saisissez le nombre de secondes pendant lesquelles une session reste active avant d’expirer.
-
Cliquez ensuite sur Save Config.