2009-04-15 4 views
3

私がクッキーについて読んだことはすべて、クッキーの有効期限をゼロに設定すると、セッションクッキーにする必要があります。Webブラウザは終了時にすべての `session '(expiry = 0)のクッキーを削除しますか?

http://www.cookiecentral.com/faq/がいることを言う:

"...一般セッションはブラウザがために開いている時間の長さである..."

http://php.net/manual/en/function.setcookie.phpは言う:

"0に設定するか省略すると、セッション終了時(ブラウザが終了したとき)にCookieが期限切れになります。

  • クッキーが終了時にセッションとして設定
  • クッキーのみを行うに削除されますセッションとセキュアように設定します。ただし

は、Firefoxで試して、いくつかの(3.0.8)をすることを示していますいいえ終了時に削除されます

Opera(9.64)はI安全であるかどうかにかかわらず、終了時にセッションクッキーを削除することを期待します。

これは、私が取り組んでいるWebアプリケーション(信頼できるクッキーと安全でないクッキーを「ログイン」フラグとして持っていて、それらが一緒に期限切れになるセッションの場合は0または0)、標準に達していてもブラウザはそれに依存するのに一貫していないようです:/

これはブラウザのバグ、予期される動作、および/または標準で実際に定義されていないセッションCookieの実際の存続期間

答えて

7

クライアント側の機能に決して頼るべきではありません。

作業中の機能は、通常、セッションIDクライアント側と実際のユーザー情報サーバー側(ID、ログインしているかどうか、個人情報など)を格納して実装されています。

クッキーがすべてのリクエストで送信されることを覚えておいてください。したがって、クッキーに保存する件数が少ないほど良いでしょう。

+1

「依存しない」とは、クライアント側の機能を利用できないことを意味するわけではありません。 Cookieの有効期限を正しく設定することはできますが、サーバー側のコードで古い無効なCookieが処理されていることを完全に確認してください。 – dwc

+1

完全にdwcに同意します。クライアント側の機能を利用できます。すべてのユーザーとすべてのリクエストで常に利用できるとは思わないでください。 – Seb

+0

それは私が完全に逃した本当に重要なポイントです。すべてのブラウザでこれが有効になると仮定すると、常にこの問題が発生します。私はこれを行う別の方法を見つける必要があるだろうと思う...それは今までかなりエレガントに見えた: –