セッションがサーバー側で処理されるときに、セッションクッキーを期限切れにする必要はありますか?


5

クッキー内の唯一のデータはセッションIDです。それを作成するときに設定された有効期限のタイムスタンプはありません。セッションは、有効期限が切れているかどうかを確認するために常にサーバー側で評価されます。

ログアウトすると、セッションはサーバー側で破棄されます。クッキーが期限切れになることはありますか?

7

クッキーが期限切れになるようにブラウザに指示するのは、ユーザーがいつでもそれを上書きできるため、便利なフォームです。結局のところ、クッキーは実際には彼のブラウザにあるので、あなたは常にサーバー側でセッションの有効期限をチェックします。

しかし、私はまだクッキーの有効期限を設定することをお勧めします。それはユーザーのブラウザにある情報の一部であり、もはや必要でないときには、ブラウザにそれを取り除くように伝えることは悪い考えではありません。

+1

私は正直に同意しません。あなたが「ブラウザにそれを取り除くように指示する」と、ユーザーがブラウザを閉じた後(一定の時間が経過するまで)、**保存するように指示します。これは、ユーザがログアウトボタンをクリックしなかった場合、それ自体のセキュリティリスクを提示する。下の私の答えを見てください。 20 12月. 132013-12-20 20:53:18


2

直接的なリスクはありませんが、とにかく期限切れになります。余分なコード行だから、なぜそうしないのだろうか。


0

いいえ、実際は有害です。

技術的には、セッションCookieを期限切れにすることはできません。有効期限を設定すると、persistent cookieになります。

セッションクッキーまたは永続的なクッキーにセッションIDを保存するのが最も良いですか?セッションクッキーはメモリ内でのみ保持され、ユーザーがブラウザを閉じるとクッキージャーから削除されるため、セッションクッキーをお勧めします。永続的なクッキーを使用すると、ファイルシステムに保存され、期限が切れるまで、またはユーザーがログアウトボタンをクリックするまでドロップされません。永続的なクッキーはしばらくの間続くので、悪意のあるユーザーがしばらくしてブラウザを開き、ユーザーのセッションを再開する可能性があります。

  0

あなたはPHP(または.Net)開発者だと思いますか? 20 12月. 132013-12-20 23:20:03

  0

私が知る限り、クッキーの「期限切れ」属性は、サーバー技術に関係なくすべてのブラウザーに共通です。あなたが知る必要がある場合は、ASP.NET + MVC。 20 12月. 132013-12-20 23:37:16

+1

過去に削除する予定の時点で日付を設定することができます**。設定されている場合のみ、セッションCookieとして動作するように日付を設定することはできません。ブラウザを信頼してブラウザを削除しないと、Cookieの値を別の値に設定することができます。空の文字列。 21 12月. 132013-12-21 13:37:38

  0

ユーザーがログアウトボタンをクリックすると仮定するべきではありません。これは、サーバに過去の日付を設定させたい場合に必要です。また、ブラウザが信頼できるものではないことを想定してください。ちょっと、ユーザーはスクリプトを有効にすることさえできないかもしれません。だから、「あなた」は過去のクッキーの日付を設定できますが、「あなた」は個人的にそこにいるわけではなく、サーバやブラウザでは不在時にカウントすることはできません。 21 12月. 132013-12-21 23:07:49