nissy.dev

CookieとSessionの基礎

1 min read
Table of Contents

新卒研修でやった内容を軽くまとめたもの

Cookie = サーバーから送られるデータ、ブラウザに保存される

  • HTTP に状態を持たせることができる
    • 「これはログイン後のやりとりだよ〜」とか
      • ID、パスワードの 2 つが保存されていればできる
      • ユーザーに再度入力させる必要がなくなる
  • 簡単に見える + 書き換えもできる
    • パスワードなどの秘密情報は扱えない

Session

Session = Cookie を使いつつ、安全に HTTP に状態を持たせる方法

  • ユーザーの状態に紐づく ID のみを Cookie として扱う
    • サーバー側では、ID に対応する状態を保持する
      • データはログアウト時などに破棄される
    • パスワードなどを見られたり、改変されたりする可能性は低くなる
  • ID としては推測されにくいランダムに生成された値を使う
  • セッションハイジャック
    • セッション ID をネットワークなどから盗まれること
    • ログイン状態が奪われ、様々な情報が閲覧されてしまう
      • セッションも万能ではない
    • HTTPS とか Cookie の Secure フラグは必須