ホームページ  >  記事  >  バックエンド開発  >  PHP Cookie の SameSite 属性を実装するにはどうすればよいですか?

PHP Cookie の SameSite 属性を実装するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-24 20:26:29182ブラウズ

How to Implement the SameSite Attribute for PHP Cookies?

PHP Cookie の同一サイト属性

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 で解決されています。

参照:

  • [Chrome ステータス: 機能ドキュメント](https://www.chromestatus.com/feature/5633521622188032)
  • [HTTPbis ドラフト](https://tools.ietf.org/ html/draft-west-first-party-cookies)
  • [HTTPbis 最新ドラフト](https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis)
  • [PHP マニュアル: setcookie()](https://php.net/manual/en/function.setcookie.php)

以上がPHP Cookie の SameSite 属性を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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