セッションとは、一連のやり取りをひとまとまりとして扱うことです。Webサイトでは、ログインした利用者の状態を引き継ぎ、ページを移動しても同じ利用者として扱う仕組みに関係します。ブラウザーに保存するCookieは、その状態とアクセスを結び付ける手段の一つです。

「セッションが切れました」と表示されても、アカウントが削除されたという意味ではありません。サイトが改めて本人確認を求めている場合があります。ここでは、ログイン中のセッションを中心に、Cookieの期限との違いと、安全に使い終えるための確認点を説明します。

【要点】セッションとログイン状態
  • セッションは利用のまとまり、Cookieはブラウザーに保存されるデータです。
  • サイト側のログイン期限とCookieの保存期限は、必ずしも一致しません。
  • 共用端末では、ブラウザーを閉じるだけでなく、サイトのログアウト操作を行いましょう。

ADVERTISEMENT

ログイン後のセッションは何を管理する?

例えば、会員サイトにログインしてから、登録内容の確認、注文履歴、配送先の画面へ移る場面を考えてみましょう。それぞれの画面を開くたびにIDとパスワードを入力するのではなく、サイトはログイン後の状態を引き継いで、本人に対応した情報を表示します。

この状態を管理する方法の一つが、識別子をブラウザーに持たせ、サイト側で有効性を確認する方法です。識別子は、どの利用に結び付くアクセスかを示すための値です。値があるだけで永久にログインできるわけではなく、サイト側で期限切れや無効と判断されると、再ログインが求められる場合があります。[1]

ログイン本人確認を行う
次のアクセス利用を識別する情報を送る
サイト側状態が有効か確認する
ログイン状態を引き継ぐ仕組みの例。識別方法や有効期限はサイトによって異なります。

同じブラウザーでも、すべてのサイトが共通のセッションを使っているわけではありません。通販サイトでログアウトした操作が、そのまま別のメールサービスのログアウトになるとは限りません。仕事用サービスでは共通の認証基盤を使う場合もあるため、終了させたいサービスの案内を確認しましょう。

Cookieは、サイトがブラウザーへ保存する小さなデータです。ログイン状態と結び付く識別子を保存することもあれば、表示言語などの設定を記憶することもあります。セッションは、そのデータ自体ではなく、一連の利用や状態を扱う考え方です。

混同しやすい3つの項目
項目意味期限の見方
セッション一連の利用やログイン中の状態サイトが状態を有効と認める条件による
Cookieブラウザーに保存するデータCookieに設定された保存条件による
アカウント利用者として登録された情報や契約ログインが切れても、登録自体がなくなるとは限らない

例えば、Cookieの保存期限が翌月になっていても、サイトが一定時間後に再認証を求める場合があります。反対に、Cookieの名前に「session」と付いていても、その名前だけで、いつログアウトするかを確定することはできません。設定値とサイト側の判断は分けて考えましょう。

開発者ツールで識別子を見られる場合もありますが、値を他人へ渡す必要はありません。問い合わせでは、表示されたエラー文、利用した画面、発生時刻を伝えましょう。Cookieやセッションの値が写った画像、ブラウザーから書き出した通信記録を送るときは、社内の担当者や正式な窓口に安全な提出方法を確認しましょう。

操作していてもセッションが切れるのはなぜ?

セッションの有効期限には、操作がない時間を基準にする考え方と、ログインなどの開始時点からの経過時間を基準にする考え方があります。OWASPの資料でも、この2つは区別されています。実際の時間や条件はサイトが決めるため、すべてのサイトが同じ分数で切れるとは限りません。[1]

また、画面上で文章を入力していても、その間にサイトへ通信していなければ、サイト側では操作がない状態として扱われる場合があります。長い申請書を入力するときは、下書き保存や入力内容の一時保存など、そのサービスが用意している方法を確認しましょう。機密情報を、保存が認められていない別サービスへ貼り付けて退避することは避けましょう。

期限切れの表示が出たときは、まず画面の案内を読みましょう。登録や決済の送信結果が分からない場合は、再ログイン後に履歴や受付状況を確認してから操作しましょう。同じ送信ボタンを繰り返し押すと、処理が重複するおそれがあります。

再ログインしてもすぐに切れる場合は、使っているアカウント、ブラウザーのプロファイル、サイトの利用条件を確認しましょう。会社のセキュリティ設定を解除したり、Cookieの値や期限を自分で書き換えたりして、期限切れを回避しようとしないよう注意しましょう。

ブラウザーを閉じることとログアウトは同じ?

同じではありません。セッションCookieはブラウザーの利用終了に結び付くものですが、ブラウザーが前回のタブや状態を復元するときに、Cookieも復元される場合があります。閉じれば必ずログアウトするとは考えないよう注意しましょう。[2]

サイトのログアウトは、そのサービスで利用を終了するための操作です。共用PCでメールや会員サイトを使った場合は、サイト内のアカウントメニューなどからログアウトしましょう。ブラウザーのウィンドウを閉じることや、ブラウザー自身のアカウントからサインアウトすることとは区別しましょう。

  1. 入力中の内容を保存し、申し込みや送信の結果を確認しましょう。
  2. 利用したサイトのログアウトを実行しましょう。複数のサービスを開いた場合は、それぞれの終了方法を確認しましょう。
  3. ダウンロードした資料や保存したファイルも確認しましょう。ログアウトしても、端末内のファイルが自動で消えるとは限りません。
  4. 端末の返却や利用終了時は、会社や施設のルールに従いましょう。プロファイルや保存データを自己判断でまとめて削除しないよう注意しましょう。

手元にない端末のログインを終了させたい場合は、サービスのアカウント設定で、ログイン中の端末やセッションを管理できるかを確認しましょう。今使っている端末でログアウトしただけで、すべての端末の状態も終了したとは判断しないよう注意しましょう。

アクセス解析や接続で使う「セッション」は別の意味?

アクセス解析では、ある利用者の訪問や行動のまとまりをセッションとして数えることがあります。そこで表示される件数は、会員サイトのログイン人数や、現在ログインしている人の人数と同じとは限りません。ログインを必要としないページの閲覧も、解析上のセッションに含まれる場合があります。

通信や遠隔接続でも、接続開始から終了までのやり取りをセッションと呼ぶ場合があります。案内を読むときは、ログイン状態の話なのか、アクセス解析の集計なのか、通信の接続なのかを確認しましょう。同じ言葉が出てきても、期限や件数を別の製品へそのまま当てはめないことが大切です。

まとめ

セッションは一連の利用や状態を扱う単位であり、Cookieやアカウントそのものとは異なります。期限切れでは送信結果を確かめてから再操作し、共用端末ではサイトのログアウトを行いましょう。ブラウザーを閉じるだけで安全に使い終えたとは判断しないよう注意しましょう。

出典

  1. OWASP:Session Management Cheat Sheet(ログイン状態、有効期限、ログアウト)
  2. MDN Web Docs:Set-Cookie header(Cookieの期限とセッション復元)