Maison > développement back-end > PHP7 > Comment utiliser les cookies dans PHP 7?

Comment utiliser les cookies dans PHP 7?

Emily Anne Brown
Libérer: 2025-03-10 16:44:17
original
301 Les gens l'ont consulté

Comment utiliser les cookies dans PHP 7?

L'utilisation de cookies dans PHP 7 implique de tirer parti de la fonction setcookie() pour envoyer des cookies du serveur au navigateur du client et de les récupérer à l'aide du tableau $_COOKIE supergloal. La fonction setcookie() prend plusieurs arguments:

  • name (requis): le nom du cookie. Cela devrait être une chaîne et devrait idéalement être descriptif.
  • value (requis): La valeur du cookie. Cela peut être une chaîne, un entier ou un booléen; Cependant, il sera traité comme une chaîne.
  • expire (Facultatif): un horodatage UNIX spécifiant le temps d'expiration du cookie. S'il est omis, le cookie sera un cookie de session, ce qui signifie qu'il n'est valable que pour la session actuelle du navigateur et sera supprimé à la fermeture du navigateur. S'il est fourni, le cookie devient persistant.
  • path (facultatif): le chemin du serveur dans lequel le cookie sera disponible. Par défaut est le répertoire actuel. Le réglage sur / rend le cookie disponible sur l'ensemble du domaine.
  • domain (Facultatif): Le domaine pour lequel le cookie est valide. L'omission de cela signifie que le cookie n'est valable que pour le domaine actuel. Le réglage de ceci permet de partager des cookies entre les sous-domaines.
  • secure (Facultatif): Si défini sur true, le cookie ne sera transmis que sur HTTPS. Ceci est crucial pour la sécurité.
  • httponly (facultatif): Si défini sur true, le cookie ne sera accessible que via les demandes HTTP, empêchant l'accès via JavaScript. Il s'agit d'une mesure de sécurité vitale pour atténuer les attaques XSS.

Exemple: Définition d'un cookie persistant nommé "Nom d'utilisateur" avec une valeur de "John_Doe" qui expire en un an:

<?php
$expire = time() + 31536000; // One year from now
setcookie("username", "john_doe", $expire, "/", ".example.com", true, true);
?>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Retrieving La valeur de la sécurité avec la valeur des cookies:

<?php
if (isset($_COOKIE["username"])) {
  echo "Welcome, " . $_COOKIE["username"] . "!";
}
?>
Copier après la connexion
Copier après la connexion

7?

La sécurité est primordiale lors de l'utilisation de cookies. Plusieurs considérations cruciales doivent être abordées:

  • https: Utilisez toujours HTTPS lors de la définition et de la récupération des cookies. Cela empêche l'écoute de la valeur du cookie pendant la transmission. L'indicateur secure dans setcookie() est essentiel ici.
  • httponly Flag: La définition de l'indicateur httponly empêche JavaScript d'accéder au cookie, atténuant les attaques de scripts croisés (XSS). Il s'agit d'une meilleure pratique de sécurité cruciale.
  • Attributs de cookies sécurisés: Utiliser les attributs sécurisés de manière appropriée. Comprenez les implications de la définition de l'attribut SameSite à Strict ou Lax pour éviter les attaques CSRF. L'attribut SameSite contrôle si un cookie est envoyé avec des demandes de site transversal.
  • Encodage de valeur de cookie: codent toujours correctement la valeur du cookie pour éviter les attaques d'injection. Utilisez urlencode() ou des fonctions similaires pour désinfecter les entrées avant de les stocker dans un cookie.
  • Temps d'expiration courts (pour les données sensibles): Pour des informations sensibles, utilisez des temps d'expiration courts pour minimiser l'impact si un cookie est compromis. HTTPS lors de la communication avec votre site Web. Cela empêche les attaques de l'homme au milieu qui pourraient intercepter les cookies.
  • Audits de sécurité réguliers: Audit régulièrement votre code et vos pratiques de sécurité pour identifier et traiter les vulnérabilités potentielles.
  • Comment puis-je définir et récupérer différents types de cookies (par exemple, les cookies de séance, les cookies persistants) dans PHP 7? Les cookies persistants se trouvent dans le paramètre de la fonction
  • :

cookies de session:

omettez le paramètre expire ou définissez-le à une époque dans le passé. Ces cookies ne sont valables que pour la durée de la session du navigateur et sont automatiquement supprimés lorsque le navigateur se ferme. setcookie()

cookies persistants: Fournir un horodatage UNIX futur pour le paramètre expire. Cela fait persister les cookies sur la machine du client jusqu'à ce que la date d'expiration spécifiée.

<?php
$expire = time() + 31536000; // One year from now
setcookie("username", "john_doe", $expire, "/", ".example.com", true, true);
?>
Copier après la connexion
Copier après la connexion
Copier après la connexion

La récupération des cookies est la même pour les deux types: utilisez l'expiration des cookies et la délétion dans les cookies PHP 7? par le paramètre dans expire.

<?php
if (isset($_COOKIE["username"])) {
  echo "Welcome, " . $_COOKIE["username"] . "!";
}
?>
Copier après la connexion
Copier après la connexion

Délétion: $_COOKIE pour supprimer un cookie, définissez sa valeur sur une chaîne vide et définissez le paramètre

dans une période dans le passé (par exemple,

). Gardez les autres paramètres (chemin, domaine) cohérents avec la façon dont le cookie a été initialement réglé.

<?php
$expire = time() + 31536000; // One year from now
setcookie("username", "john_doe", $expire, "/", ".example.com", true, true);
?>
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cela supprime efficacement le cookie du navigateur du client. N'oubliez pas que le navigateur pourrait toujours tenir le cookie pendant une courte période avant de le supprimer, selon ses mécanismes de mise en cache. De plus, s'assurer que le chemin et le domaine correspondent à l'appel d'origine setcookie() est crucial pour une suppression réussie.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal