Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PHPで学ぶ Session の基本と応用 / web-app-session-101-2024

Ryo Tomidokoro
February 09, 2024
5.5k

PHPで学ぶ Session の基本と応用 / web-app-session-101-2024

PHPカンファレンス関西2024 の登壇資料です。

Cookie を使った Session 管理について解説しています。

Ryo Tomidokoro

February 09, 2024
Tweet

More Decks by Ryo Tomidokoro

Transcript

  1. @hanhan1978 • 富所 亮 • 所属 ◦ 株式会社カオナビ • 職業

    ◦ Webアプリケーションエンジニア • ブログ ◦ https://blog.hanhans.net • Yokohama North AM ◦ https://anchor.fm/yokohama-north-am 2
  2. Session a period of time that is spent doing a

    particular activity 特定の活動に費やされた期間 https://www.oxfordlearnersdictionaries.com - Oxford Learner’s Dictionary 6
  3. World Wide Web 1990 Nov : Tim Berners Lee 1996

    May : RFC 1945 (HTTP/1.0) → ステートレスなプロトコル https://en.wikipedia.org/wiki/World_Wide_Web 14
  4. Cookie 1994 Oct : Mosaic Netscape (独自拡張) 1997 Feb :

    RFC 2109 2000 Oct : RFC 2965 2011 Apr : RFC 6265 https://en.wikipedia.org/wiki/HTTP_cookie 20
  5. 一度の Req/Res で 4KBまでの データしか扱えない → Headerに載せるという前提を考えれば当然の制約 40 2024-03-10(訂正) Cookieのサイズについては

    RFC6265では定義されておらずブラウザの実装によります。 一般的には4KB〜数十KBとなっているようです。 いずれにしろ大きい容量でないことは確かです。
  6. PHP の $_SESSION, setcookie を 安全に使うためのラッパー 61 2024-03-10(訂正) 「PHPのSessionHandlerInterfaceを実装したライブラリ」 が正しい表現です。

    結果として $_SESSION もネイティブのsetcookieも使わないので 安全や確実性を企図したライブラリであることは間違いないです
  7. Cookieの属性 Max-Age Expires Domain Path Secure HttpOnly SameSite 属性はCase Insensitive

    大文字小文字関係なし SameSiteはドラフト仕様だが、す でにブラウザ側は実装済 69