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); ?>
Retrieving La valeur de la sécurité avec la valeur des cookies:
<?php if (isset($_COOKIE["username"])) { echo "Welcome, " . $_COOKIE["username"] . "!"; } ?>
La sécurité est primordiale lors de l'utilisation de cookies. Plusieurs considérations cruciales doivent être abordées:
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. 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. urlencode()
ou des fonctions similaires pour désinfecter les entrées avant de les stocker dans un cookie. 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); ?>
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"] . "!"; } ?>
Délétion: $_COOKIE
pour supprimer un cookie, définissez sa valeur sur une chaîne vide et définissez le paramètre
<?php $expire = time() + 31536000; // One year from now setcookie("username", "john_doe", $expire, "/", ".example.com", true, true); ?>
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!