web-dev-qa-db-ja.com

FirefoxセッションCookie

一般的に、有効期限のないCookieを指定すると、最新のブラウザーはこのCookieを「セッションCookie」と見なし、ブラウジングセッションの終了時に(通常はブラウザーインスタンスが閉じたときに)Cookieを削除します。

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

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

では、Firefoxが無期限に無期限に続くのに、なぜこれらをセッションCookieと呼ぶのでしょうか?

FirefoxはセッションCookieの有効期限をどのように処理するか知っていますか?

103
meandmycode

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

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

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

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

111
bhollis

2つのアイデア:

  1. セッションマネージャーに問題があります(FF3に含まれているもの、またはtabmixplusなどの拡張機能に含まれているもの)
  2. Firebug + FireCookie( https://addons.mozilla.org/en-US/firefox/addon/668 )を使用してデバッグしてください!
5
Tomap

これは動作するはずです。私はかつてCo​​okieモジュールテスターの1人でしたが、これが異なる動作をするという設計上の理由はないと思います(クラッシュした場合でも、セッションCookie ()再起動...)

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

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

3
benc

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

1
Jason

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

HTTP仕様 https://www.ietf.org/rfc/rfc6265.txt は、クライアントがSet-CookieヘッダーでExpiresを使用して何をすべきかについて説明しています。

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

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

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

1
Neill Robbins

Mozillaが数年前からこれを残していることに、私は困惑しています。

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

絶対に復元しないでください。ページはい。ただし、cookie iniが「0」に設定されているセッションはいいえ。

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

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

0
anoldermark