La fonction Session_Set_COOKIE_PARAMS () est utilisée pour définir les paramètres des cookies de session PHP, y compris le temps valide des cookies de session, le chemin, le domaine, s'il faut utiliser une connexion HTTPS sécurisée, etc. Grâce à cette fonction, les développeurs peuvent assurer la sécurité et la stabilité de la session et éviter les risques de sécurité potentiels.
session_set_cookie_params([
'lifetime' => 3600, // cookie Période de validité(unité:Deuxième)
'path' => '/', // cookie Le chemin
'domain' => 'm66.net', // Définissez le nom de domaine sur m66.net
'secure' => true, // S'il faut passer uniquement HTTPS transmission cookie
'httponly' => true, // Est-ce interdit? JavaScript accéder cookie
'samesite' => 'Strict' // installation SameSite Stratégie
]);
durée de vie
Le paramètre à vie est utilisé pour définir la période de validité du cookie de session en secondes. Par défaut, le cycle de vie d'un cookie de session PHP n'est pas valide lorsque la session du navigateur se termine. Si vous devez rendre la session encore valide après la fermeture du navigateur, vous pouvez le régler sur une période de validité plus longue. Par exemple, 3600 signifie que le cookie dure 1 heure.
chemin
Le paramètre de chemin contrôle le chemin valide du cookie de session. S'il est défini sur Root Directory / , ce cookie sera utilisé par toutes les sous-répertoires. Si vous n'avez qu'à accéder au cookie sous un chemin spécifique, vous pouvez le définir sur ce chemin.
domaine
Le paramètre de domaine définit la portée du cookie, c'est-à-dire quel nom de domaine peut accéder à ce cookie. Pour améliorer la prise en charge de la session interdomaine, vous pouvez définir cet élément sur m66.net afin que ce cookie de session puisse être utilisé à la fois dans le nom de domaine et ses sous-domaines. Notez que le nom de domaine doit correspondre au nom de domaine actuellement demandé, sinon le cookie ne sera pas disponible.
Sécurisé
Le paramètre sécurisé détermine si le cookie ne peut être transmis que sur les connexions sécurisées HTTPS. Lorsqu'il est défini sur true , le navigateur n'enverra ce cookie que sous la connexion HTTPS. Il s'agit d'une mesure importante pour améliorer la sécurité des conversations, en particulier en ce qui concerne les données sensibles.
httponly
Le paramètre httponly contrôle si le JavaScript client est autorisé à accéder aux cookies. Si elle est définie sur true , le cookie ne peut être accessible que via le protocole HTTP et ne peut être accessible par JavaScript. Cela aide à prévenir les attaques de scripts inter-sites (XSS).
site
Le même paramètre de site contrôle la même politique de cookie du site, conçue pour empêcher les attaques de contrefaçon de demande inter-sites (CSRF). Les stratégies courantes sont:
«Strict» : autorisez uniquement les cookies sur le site actuel.
«LAX» : permet d'envoyer des cookies lors des demandes de site croisé, adaptées à certains scénarios.
«Aucun» : désactivez complètement la stratégie Samesite, mais vous devez définir sécurisé sur true .
Supposons que nous ayons un site Web de commerce électronique où nous voulons que les utilisateurs puissent conserver leur statut de connexion sur la page de panier pour le panier, tandis que d'autres pages (telles que les pages de connexion) ne nécessitent pas une persistance de session aussi longue. Nous pouvons définir différents cycles de vie et politiques via session_set_cookie_params () pour répondre aux besoins de différentes pages.
// installation登录页面的会话 cookie
session_set_cookie_params([
'lifetime' => 1800, // 30 minute
'path' => '/',
'domain' => 'm66.net',
'secure' => true,
'httponly' => true,
'samesite' => 'Strict'
]);
// Démarrer une session
session_start();
// installation购物车页面的会话 cookie
session_set_cookie_params([
'lifetime' => 86400, // 24 Heure
'path' => '/cart',
'domain' => 'm66.net',
'secure' => true,
'httponly' => true,
'samesite' => 'Lax'
]);
// Démarrer une session
session_start();
Dans cet exemple, la période de validité de session de la page de connexion est de 30 minutes, tandis que la période de validité de session de la page de panier est de 24 heures. Définissez le domaine sur m66.net pour s'assurer que les deux pages peuvent partager les mêmes cookies de session. Les paramètres des paramètres sécurisés et httponly améliorent la sécurité de la session.
L'utilisation de session_set_cookie_params () peut aider les développeurs à obtenir une gestion de session plus fine. Voici plusieurs scénarios courants pour utiliser cette fonction:
Sécurité améliorée <br> L'utilisation de paramètres sécurisés et httponly peut empêcher le vol de cookies de session par le code JavaScript malveillant, en améliorant la sécurité, en particulier lors du traitement des informations sensibles.
Gestion de session inter-sites <br> La définition des paramètres de domaine peut partager des cookies de session sur plusieurs sous-domaines, ce qui est très utile pour les grands sites Web ou applications qui doivent franchir plusieurs sous-domaines.
Contrôle du cycle de vie de la session de contrôle <br> En définissant des paramètres à vie , les développeurs peuvent contrôler la durée de la session en fonction des besoins de l'entreprise, en évitant la session à partir de l'existant indéfiniment.
Empêcher les attaques du CSRF <br> La définition du paramètre Samesite peut aider à empêcher les attaques de contrefaçon de demande de site croisé, garantissant ainsi la sécurité des données des utilisateurs.
Session_set_cookie_params () est une fonction très puissante et flexible en PHP qui peut aider les développeurs à contrôler avec précision les stratégies de gestion des cookies de session. En configurant rationnellement ses différents paramètres, les développeurs peuvent non seulement améliorer la sécurité de leurs applications, mais également optimiser les stratégies de gestion de la conversation en fonction des différents besoins. Comprendre et appliquer de manière flexible cette fonction peut rendre les applications Web plus robustes et sécurisées.