実践記事

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

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

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

関連記事

  1. システム障害を光と音のアラートですぐ察知!【警子ちゃんの活用例】
  2. AWS/Azure

    自社WebサーバにAWS WAFを適用しました(4)~AWS WAFとALBの初期設定~

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

  3. 実践記事

    初学者が一番初めに読むべき正規表現入門

    この記事では正規表現を知らない方に向けて簡単な例と共に解説します。…

  4. FortiGate

    【禁断の異機種間HA】FortiGate-60F/60EでHAを組んでみた!

    こんにちは。takiです。タイトルの通り今回もやってみた系の記…

  5. AWS/Azure

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

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

  6. LSCセキュリティアラート

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

  1. SNMPを触ってみた

    ログ分析・監視テクニック

    SNMPとは?新入社員が生まれてはじめて触ってみた!
  2. 実践記事

    DNSキャッシュポイズニングやってみた
  3. NW機器

    PaloAltoのIPsec IKEv1 Phase1におけるトラブルシューティ…
  4. NW機器

    Nutanix Prism ElementにおけるSNMP監視/REST API…
  5. NW機器

    SonicWall UTMにSyslog送信設定を追加する方法について
PAGE TOP