Maison > développement back-end > tutoriel php > Comment définir les cookies « SameSite=Strict » en PHP : un guide pour différentes versions ?

Comment définir les cookies « SameSite=Strict » en PHP : un guide pour différentes versions ?

Linda Hamilton
Libérer: 2024-10-25 05:53:02
original
456 Les gens l'ont consulté

How to Set “SameSite=Strict” Cookies in PHP: A Guide for Different Versions?

Utilisation de PHP pour définir les cookies "SameSite=Strict"

L'attribut "SameSite" améliore la sécurité des cookies en limitant leur accessibilité aux tiers -contextes de fête. En avril 2016, cette fonctionnalité a été introduite dans Chrome 51 et Opera 39.

PHP 7.3 et supérieur

Pour les versions PHP 7.3 et ultérieures, vous pouvez directement définir le " SameSite" utilisant le tableau $options dans la fonction setcookie() :

<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

L'élément "samesite" doit avoir la valeur "Aucun", "Lax" ou "Strict".

Versions PHP inférieures à 7.3

Si vous utilisez des versions PHP inférieures à 7.3, vous pouvez utiliser les solutions de contournement suivantes :

1. Modification de la configuration Apache

Ajoutez ceci à votre configuration Apache :

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

2. Modification de la configuration Nginx

Incluez ceci dans votre configuration Nginx :

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

Définissez les cookies à l'aide de la méthode d'en-tête :

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

4. Bug dans la méthode setcookie()

Utilisez cette méthode avec prudence car elle a été résolue dans PHP 7.3 :

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

N'oubliez pas d'utiliser la solution de contournement appropriée en fonction de votre base de code et de vos exigences. .

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