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

Susan Sarandon
リリース: 2024-10-25 02:41:02
オリジナル
452 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!