首頁  >  文章  >  後端開發  >  如何在 7.3 之前的 PHP 版本中設定 cookie 的「SameSite」屬性?

如何在 7.3 之前的 PHP 版本中設定 cookie 的「SameSite」屬性?

Susan Sarandon
Susan Sarandon原創
2024-10-25 02:41:02551瀏覽

How can I set the

如何使用PHP "SameSite=Strict"

回應「RFC 6265」中概述的最新更改,該更改引入了「SameSite= Strict” Site”屬性用於控制cookie 訪問,人們對在PHP 中支援此屬性越來越感興趣。 PHP 版本7.3 和上面,設定「同一網站」屬性的功能已透過setcookie() 函數中的$options 數合併。 🎜>

PHP

PHP

PHP

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

對於🎜> v7.3

對於採用替代解決方案:

1. Apache 設定:

透過將下列行新增至Apache 設定中,您可以將所有cookie 的「相同網站」值設定為“Lax”:
Header always edit Set-Cookie (.*) "; SameSite=Lax"

2. Nginx 配置:

Nginx 也有類似的方法,您可以使用以下配置將所有cookie 的“同一站點”設定為「嚴格」:
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 本質上是HTTP 請求中的標頭,因此您可以使用header () 方法設定它們:
<code class="php">header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");</code>

4. setcookie() 錯誤利用:

setcookie() 方法中存在一個已知錯誤,允許在7.3 之前的PHP 版本中將「相同站點」值設為「嚴格」:
<code class="php">setcookie('cookie-name', '1', 0, '/; samesite=strict');</code>

注意:

此錯誤已在PHP 7.3 中修復。

以上是如何在 7.3 之前的 PHP 版本中設定 cookie 的「SameSite」屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn