0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

1. はじめに

 前回の記事では、Webサイトでよく見かける「Cookieって何?」というテーマを扱いました。
 今回はその相棒とも言える セッション(Session) についてもまとめたいと思います。両者の違いを聞かれると、「Cookieとセッションって何が違うの?」などいまいちわからない方も多いのではないでしょうか。
 そこで本記事では、セッションとは何か、Cookieと何が違うのかについてまとめます。

※本投稿は、2026年3月時点の情報、及び、あくまで一個人のメモ書きと思ってお読みください

2. セッションとは?

 セッション とは サーバー側でユーザーの状態を保持する仕組み のことです。
Webの世界はステートレス(状態を保持しない)ため、「このリクエストは誰のものか?」をサーバーは覚えていません。
そこで登場するのがセッションです。

各用語の使い分け

  • Cookie:ブラウザ側に保存される小さなメモ
  • セッション:サーバー側に保存されるユーザー情報の本体
  • セッションID:セッションを識別するための識別子
    Cookieは鍵、セッションは鍵の先にあるロッカーのようなイメージです。

3. セッションの仕組み

セッション利用の流れは次の通りです。

  1. ユーザーがログインする
  2. サーバーが「セッションID」を発行
  3. セッションIDを Cookieに入れてブラウザへ送信
  4. ブラウザはセッションIDを保存
  5. 次回以降のアクセスで、ブラウザはセッションIDをサーバーへ送信
  6. サーバーはセッションIDをもとにユーザー情報を参照
  7. ログイン状態が維持される

4. Cookieとの違い

 セッションとCookieのちがいは次の通りです。

項目 Cookie セッション
保存場所 ブラウザ サーバー
内容 ユーザー識別情報 ログイン情報本体
有効期限 長期間 短期間
セキュリティ 改ざん・盗難リスクあり サーバーに保存されるため比較的安全

 セッションはサーバー側で管理されるため、Cookieより安全性が高い と言われます。ただし、後述するように「セッションID」が盗まれると話は別です。

5. セキュリティ的な観点から見たセッション

 セッションはログイン状態を維持するための重要な仕組みですが、同時に 攻撃者に狙われやすいポイント でもあります。

 代表例は次の通りです。

  1. セッションハイジャック:公共Wi-Fiでの盗聴やXSS(クロスサイトスクリプティング)で攻撃者がセッションIDを盗み取り、ユーザーになりすましてログインする 
  2. セッションフィクセーション:攻撃者があらかじめ用意したセッションIDをユーザーに使わせ、ログイン後にそのIDを使って不正アクセスする攻撃
  3. セッションの長時間放置:ログアウトしないまま放置すると、第三者に端末を触られた際に不正利用される可能性があります。

上記を踏まえて、ユーザーが気を付けることができるアクションも併せてご紹介します。

  1. 公共の端末でログインしない
  2. ログアウトを忘れない
  3. 不審なサイトにアクセスしない
  4. ブラウザやOSを最新に保つ
  5. パスワードを使い回さない

6. おわりに

セッションは、Webアプリケーションの根幹を支える重要な仕組みです。Cookieと組み合わせることで、ログイン状態の維持やユーザー体験の向上が実現します。しかし、セッションIDが盗まれると深刻な被害につながるため、セキュリティ対策は必須ですね。
ありがとうございました!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?