首页  >  文章  >  后端开发  >  如何在 PHP 中设置“SameSite=Strict”Cookie:不同版本指南?

如何在 PHP 中设置“SameSite=Strict”Cookie:不同版本指南?

Linda Hamilton
Linda Hamilton原创
2024-10-25 05:53:02195浏览

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

使用 PHP 设置“SameSite=Strict”Cookie

“SameSite”属性通过限制第三方对 Cookie 的访问来增强 Cookie 的安全性- 政党背景。 2016 年 4 月,该功能在 Chrome 51 和 Opera 39 中引入。

PHP 7.3 及以上

对于 PHP 7.3 及更高版本,您可以直接设置“在 setcookie() 函数中使用 $options 数组的 SameSite" 属性:

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

“samesite”元素的值应为“None”、“Lax”或“Strict”。

低于 7.3 的 PHP 版本

如果您使用低于 7.3 的 PHP 版本,可以采用以下解决方法:

1. Apache 配置修改

将此添加到您的 Apache 配置中:

Header always edit Set-Cookie (.*) "; SameSite=Lax"

2. Nginx 配置修改

将其包含在您的 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.标头方法

使用标头方法设置cookie:

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

4. setcookie() 方法中的错误

请谨慎使用此方法,因为它已在 PHP 7.3 中解决:

<code class="php">setcookie('cookie-name', '1', 0, '/; samesite=strict');</code>

请记住根据您的代码库和要求使用适当的解决方法.

以上是如何在 PHP 中设置“SameSite=Strict”Cookie:不同版本指南?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn