実践記事

【消えないっ...】セッションCookieにおけるGoogle Chrome起動時の[前回開いていたページを開く]設定の罠【だとっ!?】

この記事は投稿日から1年以上経過しています。

セッションCookieはブラウザを閉じた時点で削除される。これはセッションCookieにおける基本の動作。不変の真理なのだ。しかし、今回は違った。上記のような設定を行い、Google Chromeを閉じた。これでセッションCookieは削除されたはずだ。再びGoogle Chromeを開き、ページを確認する。そこにはなんとまだセッションCookieが残っていたのだった。消えるはずのセッションCookieがなぜ残っていたのか。この記事ではこの謎を解明し、何が原因で、どのような対策を行えば良いかを述べていく。

セッションCookieとは

まず、セッションCookieについて軽く解説します。CookieにはExpires属性という日時を指定し、Cookieに有効期限を設定することが出来る属性があります。日時を指定した場合は「永続的なCookie」と見なされ、指定した日時まで有効になり、その日時を超えると削除されます。また、日時を指定しなかった場合は「セッションCookie」と見なされ、ブラウザを閉じる(セッションが終了する)と削除されます。今回はセッションCookieが予想と異なった動作をしており、原因が分からずにはまってしまいました。

現象

Cookieに関する学習を行うために、とあるテスト用サイトを用意しました。このサイトではCookieのExpires属性に日時を指定していないため、Google Chromeを閉じるとセッションCookieが削除されるはずでした。

(Google Chromeでページを表示して右クリックし、[検証>[Application]>[Cookies]でCookieについて確認。ExpiresがSessionとなっており、ブラウザを閉じる(セッションが切断される)と削除されるようになっていることが分かる。)

しかし、再びGoogle Chromeを開くとまだそこにセッションCookieが消されずに存在していました。なぜこんなことが起こったのか訳が分からず、数十分間試行錯誤した結果やっと原因を見つけました。

原因:起動時>[前回開いていたページを開く]の設定

Google Chromeの[起動時]の設定を[前回開いていたページを開く]にしておくとブラウザを立ち上げたときにすぐに前回開いていたタブを復元することが出来てとても便利です。しかし、どうやらこの設定を行うとブラウザを閉じてもセッションは切断されないそうです。つまり、セッションCookieは削除されないということになります。

対策

対策方法としては2つあります。どちらもすぐに設定出来るため、どちらの方法をとっても解決することが出来ますが、それぞれ注意が必要です。

①   [前回開いていたページを開く]を変更する

今回は[起動時]>[前回開いていたページを開く]という設定が問題となっていました。そのため、[新しいタブページを開く]に変更すれば良いです。こうすることでブラウザを閉じるとセッションが切断されるため、セッションCookieは削除されます。

しかし、ブラウザ起動時に前回開いていたページを開いてくれなくなるため、注意して下さい。

②   [すべてのウィンドウを閉じるときにCookieとサイトデータを削除する]をオンにする

どうしても起動時に前回開いていたページを開きたい方は [プライバシーとセキュリティ―]>[Cookieと他のサイトデータ]>[すべてのウィンドウを閉じるときにCookieとサイトデータを削除する]をオンにすると、ブラウザを閉じたときにCookieを削除することが出来ます。

しかし、セッションCookie、永続的Cookieに関わらず全てのCookieが削除されてしまうため注意が必要です。

余談(Firefoxの場合)

Firefoxで起動時に前回のページを開きたい場合は設定の[一般]の中に[前回のウィンドウとタブを開く]という設定があります。実はGoogle Chromeと違い、ブラウザ終了時にセッションCookieが削除されるかどうかはこの設定に左右されません。

じゃあどこで削除するようにするのかというと、[プライバシーとセキュリティ]タブにある[Cookieとサイトデータ]の中の[Firefoxを閉じたときにCookieとサイトデータを削除する]をオンにします。この設定を行うことでブラウザを閉じたときにCookieを削除することが出来ます。

しかし、セッションCookie、永続的Cookieに関わらず全てのCookieが削除されてしまうため、注意が必要です。

おわりに

セッション管理においては、セッションIDを攻撃者に窃取されないためにもセッションが終了する(ブラウザを閉じる)とデータが消えるセッションCookieを使うべきというのが通説です。しかし、今回の件でブラウザの設定次第では、セッションCookieはブラウザを閉じても削除されない場合があるということが分かりました。この仕様によって大きな影響を受けるシステムの場合には、Expires属性を付与してCookieを短時間だけ利用可能にする、利用者に今回の設定を使わないように案内するなどの対処法が必要かもしれません。

LogStare Collector 無償版

記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。

当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。

Linux/Windows pingコマンドの使い方とオプションについて前のページ

LSC v2.3.5 build 230529 リリースノート次のページ

ピックアップ記事

  1. ログフォワーダー「okurun.jar」について
  2. Zabbixヒストリデータのレポート生成について
  3. 自社製品をAMIにしてAWSマーケットプレイスへ出品
  4. IoT機器「Raspberry pi」とLogStare Collectorで温…

関連記事

  1. PaloAlto

    ChatGPTを利用し、PaloAltoで多数のアドレスオブジェクトを作成するコマンドを、一括作成し…

    本記事はPaloAltoにおいて多数のアドレスオブジェクトを作成する際…

  2. LSCセキュリティアラート
  3. システム障害を光と音のアラートですぐ察知!【警子ちゃんの活用例】
  4. 実践記事

    【ネットワーク初心者向け】初めて読むSNMPv3について

    当記事では、ネットワーク初心者向けにSNMPv3の概要、SNMPv1、…

  5. AWS/Azure

    自社WebサーバにAWS WAFを適用しました(5)~運用後の経過~

    こんにちは。タイトルの通り、自社WebサーバにAWS WAFを適用…

  6. 実践記事

    【現場SE奮闘記 vol.1】社内ネットワークで「嵐」が起きたその日

    筆致についてはタイトル毎に統一されていません。あらかじめご了承ください…

LogStare Collector 無償版
クラウド活用の「困った」「焦った」事例
月額200円でM356の監査ログの運用レベルUP LogStare M365
AWSのログ分析・モニタリングに 次世代のマネージド・セキュリティ・プラットフォーム LogStare

  1. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  2. ログ分析・監視テクニック

    nProbeであらゆる通信をログに記録し可視化する
  3. AWS/Azure

    AWSマーケットプレイス上から無償版のLogStare Collectorを試す…
  4. デフォルト画像イメージ

    FortiGate

    FortiGateのSD-WAN設定について
  5. 実践記事

    DNSキャッシュポイズニングやってみた
PAGE TOP