101


23

一般的に言って、有効期限がないクッキーが与えられると、最近のブラウザはこのクッキーを「セッションクッキー」と見なし、ブラウジングセッションの終わりに(通常はブラウザインスタンスが閉じるときに)そのクッキーを削除します。

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

しかしながら、Firefox(3.0.9最新の適切なリリース)はこの規則に従わないように見えます、私が言うことができることから、ブラウザが閉じられるとき、またはユーザがログオフするか、OSを再起動するとき、クッキーは失効しません。

それでは、なぜFirefoxがこれらを無期限に無期限に存続させるときにセッションCookieと呼ぶのでしょうか。

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

7 Answer


109


これは明らかに設計によるものです。 このBugzillaバグをチェックしてください。https://bugzilla.mozilla.org/show_bug.cgi?id=443354

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

ブラウザがクラッシュしても元の場所に戻るという意味ではこれは理にかなっていますが、セッションCookieに使用されていたWeb開発者にとっては少し紛らわしいことです。 私は数ヶ月前から私がいつもタブで開いているサイトによって設定されたいくつかの古いセッションクッキーを持っています。

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


5


二つのアイデア:

  1. セッションマネージャに問題があります(FF3に含まれているもの、またはtabmixplusのように拡張子に含まれているもの)。

  2. デバッグするにはFirebug FireCookie(https://addons.mozilla.org/en-US/firefox/addon/6683)を使用してください。


3


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

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

また、あなたは新しいプロフィールを試しましたか?


1


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


0


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

OK.. だから私はFFをやめてPCの電源を切る。 翌日FFは最後のページを開いて開きます(便利な機能です)しかし、セッションを復元し、 "設定を保存"機能を持たないサイトにログインし直します。 私が知っているのは彼らが私が作ったサイトだからです。 php ini設定で何をしてもセッションは復元されます。

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

なぜこれがセキュリティホールとしてフラグが立てられていないのか理解できません。 最後のログインからの時間に基づいて、ログインを許可するかどうかを確認するために、サーバー側で追加の確認を行うことができますが、必須ではありません。

セッションは持続してはいけません。 FFはクッキーの有効期限設定を操作しています。


0


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

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

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

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

基本的にユーザーエージェントはサーバーリクエストを無視し、Expires値が設定されているかのように振る舞うことにします。


-1


まあそれは私を混乱させています。 私のシステムは、ユーザーがEXITを押すことができるように設定されているので、私はすべてのセッションクッキーを破壊します。 しかし、ユーザーが実際に「終了」を選択せず​​にブラウザーを閉じると、セッションCookieが消去されます。

私は実際にGoogle Chrome、IE 9でそれをテストしました、そしてうまく働きます。 しかし、Firefoxはこの「セッション」(Firebugが報告したように)クッキーを殺すことに消極的です。

*OK。 これは私がしたことです。 私はFireFoxのメインメニューからExitを選び、それ以降は期待通りにうまくいきました(なぜかわかりません)。