Maison > développement back-end > tutoriel php > Comment puis-je définir l'attribut \'SameSite\' pour les cookies dans les versions PHP antérieures à 7.3 ?

Comment puis-je définir l'attribut \'SameSite\' pour les cookies dans les versions PHP antérieures à 7.3 ?

Susan Sarandon
Libérer: 2024-10-25 02:41:02
original
677 Les gens l'ont consulté

How can I set the

Comment utiliser PHP "SameSite=Strict"

En réponse aux modifications récentes décrites dans la "RFC 6265", qui a introduit le "Same Site" pour contrôler l'accès aux cookies, la prise en charge de cet attribut suscite un intérêt croissant dans PHP.

PHP >= v7.3

Pour les versions PHP 7.3 et ci-dessus, la possibilité de définir l'attribut "Same Site" a été incorporée via le tableau $options dans la fonction setcookie(). L'exemple suivant montre comment définir la valeur « Même site » sur « Aucun » :

<code class="php">setcookie($name, $value, [
    'expires' => time() + 86400,
    'path' => '/',
    'domain' => 'domain.example',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'None',
]);</code>
Copier après la connexion

PHP < v7.3

Pour les versions de PHP antérieures à 7.3, des solutions alternatives peuvent être employées :

1. Configuration Apache :

En ajoutant la ligne suivante à votre configuration Apache, vous pouvez définir la valeur "Même site" sur "Lax" pour tous les cookies :

Header always edit Set-Cookie (.*) "; SameSite=Lax"
Copier après la connexion

2. Configuration Nginx :

Une approche similaire est disponible pour Nginx, où vous pouvez utiliser la configuration suivante pour définir "Même site" sur "Strict" pour tous les cookies :

location / {
    # your usual config ...
    # hack, set all cookies to secure, httponly and samesite (strict or lax)
    proxy_cookie_path / "/; secure; HttpOnly; SameSite=strict";
}
Copier après la connexion

3. Méthode d'en-tête :

Comme les cookies sont essentiellement des en-têtes dans les requêtes HTTP, vous pouvez les définir à l'aide de la méthode header() :

<code class="php">header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");</code>
Copier après la connexion

4. Setcookie() Bug Exploit :

Il existe un bug connu dans la méthode setcookie() qui permet de définir la valeur "Same Site" sur "Strict" dans les versions PHP antérieures à 7.3 :

<code class="php">setcookie('cookie-name', '1', 0, '/; samesite=strict');</code>
Copier après la connexion

Remarque : Ce bug a été corrigé dans PHP 7.3.

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