Dans la société moderne, avec le développement rapide d'Internet, de plus en plus d'applications nécessitent que les utilisateurs se connectent avant de pouvoir être utilisées. L'une des questions clés est de savoir comment définir la période de validité du statut de connexion. Si le statut de connexion reste valide pendant une longue période, le risque de sécurité sera considérablement accru ; si le statut de connexion expire trop rapidement, cela entraînera des désagréments pour l'utilisateur. Cet article explique comment définir la période de validité du statut de connexion à 3 jours via PHP pour atteindre un équilibre entre sécurité et commodité.
Voyons d'abord pourquoi nous devons limiter la période de validité du statut de connexion. Normalement, une fois qu'un utilisateur s'est connecté à un site Web ou à une application, un identifiant de session (Session ID) est généré sur le serveur et stocké dans un cookie sur le client. Chaque fois qu'un utilisateur envoie une demande, elle sera accompagnée de cet ID de session. Grâce à cet ID, le serveur peut garantir que la demande provient d'un utilisateur connecté. Si aucune date d'expiration n'est définie, le statut de connexion restera valide jusqu'à ce que l'utilisateur se déconnecte activement ou que le cookie soit effacé. De cette manière, si quelqu'un obtient le cookie de l'utilisateur par quelque moyen que ce soit, il peut utiliser ce cookie pour forger une session avec la même identité que l'utilisateur sur le serveur, contournant ainsi le mécanisme d'authentification existant.
Afin de résoudre ce problème, nous devons limiter la période de validité du statut de connexion via le programme. Dans cet article, nous utiliserons le mécanisme Session de PHP pour atteindre cet objectif. Le mécanisme de session de PHP signifie que PHP créera automatiquement un objet Session sur le serveur et générera un ID de session unique pour suivre l'état de la session de l'utilisateur. Les données de session sont stockées sur le serveur et les utilisateurs doivent fournir l'ID de session lors de l'accès pour obtenir les données précédemment stockées. PHP stocke automatiquement l'ID de session dans le cookie du client.
Pour définir la durée de validité du statut de connexion, nous pouvons modifier le délai d'expiration de la session en PHP. Par défaut, le délai d'expiration de la session PHP est de 24 minutes, c'est-à-dire que si l'utilisateur n'envoie aucune requête dans les 24 minutes, la session sera considérée comme expirée. Afin de prolonger le délai d'expiration de la session à 3 jours, nous devons apporter des modifications au fichier de configuration PHP php.ini.
Tout d'abord, nous devons trouver le fichier php.ini, qui se trouve généralement dans le chemin php.ini ou phpphp.ini du répertoire d'installation de PHP. Après avoir trouvé le fichier, ajoutez le code suivant à la fin du fichier :
session.gc_maxlifetime = 259200 session.cookie_lifetime = 259200
La signification du code est de fixer le délai d'expiration de la Session à 259200 secondes, soit 3 jours. Dans le même temps, le délai d'expiration des cookies est également fixé à 3 jours, ce qui garantit que les utilisateurs peuvent rester connectés même après la fermeture et la réouverture du navigateur. Une fois la modification terminée, vous devez redémarrer le serveur Web pour que la configuration prenne effet.
En plus de définir le délai d'expiration de la session globalement dans php.ini, nous pouvons également le définir pour une certaine session dans le programme. Voici un exemple :
session_start(); $_SESSION['LAST_ACTIVE_TIME'] = time(); if (isset($_SESSION['LAST_ACTIVE_TIME']) && (time() - $_SESSION['LAST_ACTIVE_TIME'] > 259200)) { session_unset(); session_destroy(); }
Le code ci-dessus signifie qu'à chaque fois que l'utilisateur le demande, l'heure actuelle est enregistrée dans une variable de session nommée LAST_ACTIVE_TIME. Si la session n'a reçu aucune demande depuis plus de 3 jours, la session sera supprimée, de sorte que le statut de connexion de l'utilisateur soit effacé.
Enfin, permettez-moi de vous rappeler que même si fixer la période de validité du statut de connexion à 3 jours peut améliorer la sécurité, vous devez également faire attention à ne pas gêner les utilisateurs car le délai est trop court. Par conséquent, nous devons prendre en compte de manière globale l’expérience utilisateur et la sécurité lors de l’écriture de programmes et adopter des stratégies appropriées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!