Maison  >  Article  >  développement back-end  >  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
Susan Sarandonoriginal
2024-10-25 02:41:02551parcourir

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>

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"

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";
}

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>

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>

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:
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