ホームページ  >  記事  >  バックエンド開発  >  7.3 より前のバージョンの PHP で Cookie に \"SameSite\" 属性を設定するにはどうすればよいですか?

7.3 より前のバージョンの PHP で Cookie に \"SameSite\" 属性を設定するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-25 02:41:02453ブラウズ

How can I set the

PHP "SameSite=Strict" の使用方法

「RFC 6265」で概説されている最近の変更に対応して、「SameSite=Strict」が導入されました。 Cookie アクセスを制御するための Site" 属性については、PHP 内でこの属性をサポートすることに関心が高まっています。

PHP >= v7.3

PHP バージョン 7.3 および上記では、「同じサイト」属性を設定する機能が、setcookie() 関数の $options 配列を通じて組み込まれています。次の例は、「同じサイト」の値を「なし」に設定する方法を示しています。

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

PHP < v7.3

7.3 より前のバージョンの PHP では、代替ソリューションを採用できます。

1. Apache 構成:

Apache 構成に次の行を追加すると、すべての Cookie に対して「Same Site」の値を「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 バージョンで「Same Site」値を「Strict」に設定できる既知のバグがあります:

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

注: このバグは PHP 7.3 で修正されました。

以上が7.3 より前のバージョンの PHP で Cookie に \"SameSite\" 属性を設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。