2012-04-05 6 views
1

セッションを破壊する最良の方法が何であるかを理解しようとしています。 reset_sessionは、ユーザーのalaセッション[:user_id] = nilをクリアするよりも抜本的です。reset_sessionとsession [:user_id] = nilのトレードオフは何ですか?

しかし、私は多くの例で、reset_sessionの代わりにsession [:user_id] = nilを見ました。どうして?セッションを完全に破壊したくない理由はありますか?

ここでベストプラクティスは何ですか?

答えて

0

セッションを非アクティブにしておきたい場合があります。私が取り組んでいるアプリケーションでは、例えば、管理者のために最近アクティブなユーザーのリストを表示します。これらのユーザーのセッションはログアウトすると非アクティブになりますが(session[:user_id] = nil)、セッションを維持して最近アクティブなユーザーを確認します。

+0

ああ、そうです。しかし、セッション[:user_id] =私たちはセキュリティの観点からかなり効果的ですか? – Nathan

+0

理論的には、敵対的なユーザーは、Cookieからこれを削除し、ログインしたままにするというリクエストを無視することができます。次に一致しないデータベースのログイントークンを変更するなど、Cookieを拒否する別のメカニズムが必要です。 – tadman

+0

@tadman、私はactive_record_storeを使用しているので、変更はcookieではなくdbで行われるので、これは問題ではないと思います。または私は何かを逃していますか? – tsherif

関連する問題