1

現在、ユーザーがログアウトされるという奇妙な問題が発生しています。私はそれを明示的に再現することができませんでした。

Rails アプリケーションはデフォルトの CookieStore を使用しています。

私の最初の仮説は、何らかの形で Cookie 内のセッション データ、または Cookie 自体が破壊されているというものです。これは、ユーザーがブラウザのデータを消去したか、システム内で捕捉されていない何かによるものである可能性があります。

現在のところ、認証システムは意図したとおり (Authlogic) に機能しているように見え、アプリケーションの他のコンポーネントで広範囲に及ぶ問題は発生していません。

問題が解決するかどうかを確認するために ActiveRecordStore を使用することを検討しています。私の理解では、セッション データはデータベース内に保存され、Cookie が削除された場合、ユーザーはログアウトされません。

CookieStore と ActiveRecordStore の使用には、多くの既知の長所/短所がありますか?

Railsアプリケーションを作成するとき、ActiveRecordStoreではなくCookieStoreがデフォルトなのはなぜですか?

4

2 に答える 2

5

最後の 2 つの質問にお答えします。

  • 機密データをセッションに保存する場合は、Cookie ストアを使用しないでください。そのようなデータをクライアントではなくサーバー側に配置する必要があるためです。

  • Rails は、Cookie ストレージが 4 KB に制限されているため、セッションに大量のデータを保存すべきではないという強いヒントを与えているため、Cookie ストアがデフォルトになっています。

于 2010-08-12T16:25:59.277 に答える
0

シンプルなのでCookieStoreがデフォルトだと思います。データベース テーブルは必要ありません。

CookieStore は ActiveRecordStore ほど安全ではありません。CookieStore を使用すると、傍受された Cookie は、新しいセッションを作成した場合でも、有効なセッションへのアクセスを永久に提供します。ActiveRecordStore を使用すると、セッションをデータベースから削除して無効にすることができます。

このブログ投稿を参照してください: http://www.bryanrite.com/ruby-on-rails-cookiestore-security-concerns-lifetime-pass/

于 2012-05-22T16:24:37.583 に答える