FirefoxセッションCookie


105

一般的に言えば、有効期限のないCookieが与えられた場合、最新のブラウザはこのCookieを「セッションCookie」と見なし、ブラウザセッションの最後に(通常はブラウザインスタンスが閉じたときに)Cookieを削除します。

IE、Opera、Safari、Chromeはすべてこの動作をサポートしています。

ただし、Firefox(3.0.9最新の適切なリリース)はこのルールに従っていないようです。ブラウザが閉じているとき、またはユーザーがOSをログオフまたは再起動したときに、Cookieが期限切れにならないことがわかります。

それで、FirefoxがこれらをセッションCookieと呼ぶのはなぜですか?

FirefoxがセッションCookieの有効期限を処理する方法を知っている人はいますか?


1
これは実際には答えられていないと思います。私もこれを見ています。
bhollis 2009

BRHの研究に感謝します。私は実際にあなたの返事を見ました、そしてあなたの答えをマークする前にあなたの研究をチェックすることを意味しました、完全に忘れました!謝罪
meandmycode

回答:


116

これは明らかに仕様によるものです。このBugzillaのバグを確認してください:https : //bugzilla.mozilla.org/show_bug.cgi?id=443354

Firefoxには、Firefoxを終了する機能があり、すべてのタブを保存してからブラウザーを復元すると、それらのタブが再び表示されます。これをセッション復元と呼びます。私が気づかなかったことは、それらのページのすべてのセッションCookieも復元されることです。ブラウザを閉じたことがないように扱います。

これは、ブラウザーがクラッシュした場合に元の場所にすぐに戻ることができますが、Cookieのセッションをクリアするために使用されているWeb開発者を少し困惑させることになります。何ヶ月も前に、常にタブで開いているサイトによって設定された古いセッションCookieをいくつか持っています。

これをテストするには、ブラウザのすべてのタブを閉じてから、ブラウザを閉じて再起動します。私が考えるあなたのサイトのためのセッションクッキーが、その場合にはクリアする必要があります。それ以外の場合は、セッションの復元をオフにする必要があります。


1
この動作はかなり疑わしいと思います。研究に感謝します。「保存して終了」または「タブとウィンドウを復元」が選択されている場合、ブラウザを閉じても、すべてのセッションCookieはそのまま残ります。「ユーザー」がそれらを取り除く唯一の方法は、最初にタブ閉じてからブラウザを閉じることです。
マーク

これまでに回避策を見つけましたか?アプリのセッションIDを一意にする必要があるため、Firefoxで古いセッションを掘り下げてほしくない。
ArjanP

申し訳ありませんが、回避策はわかりません。アプリの観点からは、ブラウザは決して閉じられません。
bhollis

6
:私はこの(IMO無分別)意思決定の意味のいくつか指摘してきたmrclay.org/index.php/2010/05/02/...
スティーブ・クレイ

今日もこの行動に噛まれました。アプリに問題があると思いました。次に、Chromeや他のブラウザーをテストし、Firefoxが原因であることがわかりました。
ディングル


3

これはうまくいくはずです。私は以前はCookieモジュールテスターの1人でしたが、これが異なる動作をするという設計上の理由はないと思います(クラッシュした場合、セッションCookie 再起動時に存続するように設計されている可能性があります...)

[設定]メニュー> [プライバシー]タブ> [Cookieを表示...]ボタンでCookieを表示していますか?

また、新しいプロファイルを試しましたか?


非常に奇妙なことですが、これがテストした2つのシステムのバグである場合は比較的満足しています。Cookieを表示したところ、何も残っていません。FirefoxによってセッションCookieとして完全に分類されています。私が今までFirefoxで変更したオプションは、JavaScriptをオフにしてからオンにすることだけです。私のインストールしたプラグインは、FirebugとWeb開発者ツールバーです。
meandmycode 2009

また、さまざまなcookieモジュールの設定がありますが、このような機能を持つものはありません。FF3はテキストファイルからcookieデータベースに切り替わりました。おそらくデータベースの動作に問題があります。
2009年

2

上記のmeandmycodeに同意しません。

HTTP仕様https://www.ietf.org/rfc/rfc6265.txt は、クライアントがExpiresのSet-Cookieヘッダーをどのように処理する必要があるかについて説明しています。

サーバーがユーザーエージェントにCookieを複数の「セッション」にわたって保持することを希望する場合(たとえば、ユーザーエージェントの再起動)、サーバーはExpires属性で有効期限を指定できます。ユーザーエージェントのCookieストアが割り当てを超えた場合、またはユーザーが手動でサーバーのCookieを削除した場合、ユーザーエージェントは有効期限より前にCookieを削除する可能性があることに注意してください。

これの論理的な拡張は、ブラウザが終了時にCookieを維持しないことをサーバーが要求する唯一の方法は、Expires値(つまり、セッションCookie)を設定しないことです。ブラウザがそのセマンティクスを尊重しない場合、サーバーの応答を尊重しません。

基本的に、ユーザーエージェントはサーバー要求を無視し、Expires値が設定されているかのように動作することを決定しています。


1

これは、共有ユーザー環境では少し心配です。セッションの終了時に期限切れになるように設定されている認証Cookieを設定した場合。これは、ブラウザを閉じて別のユーザーがFirefoxを起動した後もFirefoxに残ります。クッキーには理由のために有効期限が設定されています!


1
まあ、「理由のためにCookieに有効期限が設定されている」ことについて公平にするために-このシナリオでは、有効期限を設定していないため、そのCookieの有効期間を決定するのはブラウザ次第です。
meandmycode 2012年

0

Mozillaがこれを数年間そのままにしておいたことに私はイライラしています。

わかりました。FFを終了してPCの電源を切ります。翌日、FFが開始して最後のページセットを開きます(便利な機能です)が、セッションが復元され、「設定を保存」機能のないサイトに再度ログインします。私が作ったサイトなので知っています。私がphp ini設定で何をしても、セッションは復元されます。

それらは絶対に復元されるべきではありません。ページはありますが、cookie iniが「0」に設定されたセッションはありません。

これがセキュリティホールとしてフラグされていない理由がわかりません。確かに、サーバー側で追加のチェックを行って、最後のログインからの時間に基づいて、ログインを許可する必要があるかどうかを確認できますが、必要ありません。

セッションは持続してはなりません。FFがCookieの有効期限設定を操作しています。


-1

まあそれは私を当惑させます。私のシステムは、ユーザーがEXITを押してすべてのセッションCookieを破棄できるように設定されています。しかし、ユーザーが実際に[終了]を選択せず​​にブラウザを閉じた場合、セッションCookieはクリアされますか。

私は実際にそれをグーグルクローム、IE 9でテストしました、そして、うまく働きます。しかし、Firefoxはこの「セッション」(Firebugによって報告された)Cookieを強制終了することに消極的です。

OK。これは私がやったことです。FireFoxのメインメニューから[終了]を選択しましたが、それ以降は期待どおりにうまくいきました(理由はわかりません)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.