Maison >développement back-end >tutoriel php >Comment définir les cookies « SameSite=Strict » en PHP : un guide pour différentes 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>
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"
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"; }
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>
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>
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!