RFC 6265 では、Cookie に「同一サイト」属性を導入しています。これにより、クロスサイト リクエスト フォージェリ (CSRF) を制限することで Cookie のセキュリティが強化されます。
PHP サポート:
PHP >= v7.3:
setcookie() 関数はサポートしています$options 配列を介した「同じサイト」属性。有効な値は次のとおりです。
PHP の場合 < v7.3:
PHP コアの制限により、いくつかの回避策が利用可能です:
Apache 構成:
に次の行を追加します。 「同じサイト」属性を持つすべての Cookie を変更します:
Header always edit Set-Cookie (.*) "; SameSite=Lax"
Nginx 構成:
以下を含むように構成を更新します:
proxy_cookie_path / "; secure; HttpOnly; SameSite=strict";
ヘッダー メソッド:
ヘッダーを使用して Cookie を明示的に設定できます:
header("Set-Cookie: key=value; path=/; domain=example.org; HttpOnly; SameSite=Lax");
バグの悪用:
バグを利用した古い setcookie() メソッド:
setcookie('cookie-name', '1', 0, '/; samesite=strict');
注: このバグは PHP 7.3 で解決されています。
参照:
以上がPHP Cookie の SameSite 属性を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。