2011-08-10 7 views
7

私のプロジェクトの認証システムを構築しています。 店舗セッション情報に推奨されるアプローチ(私は他のユーザーのIDは何も格納していないのです)とは何ですか:Rails - セッション用のクッキーまたはアクティブレコードストア

  • Cookieストア
  • アクティブレコードストア

また、セキュリティ上の懸念は何ですか入れ子になったフォームを使用し、accepts_nested_attributes_forを使用します。

お知らせください。

ありがとうございます。

答えて

4

Railsはデフォルトでcookieストレージを使用しています。一般に、クッキーストアは、特にトラフィックの多いサイトでは優れています。セッションにミッションクリティカルなものを保存しないでください(素晴らしいユーザーIDのみを保存しているとします)。

これまでのセキュリティ上の懸念...私はあまりにも多くあるとは思わない? railscastsでそれらを使用する上での偉大なチュートリアルをチェックしてください。心に浮かぶのは、おそらくattr_accessibleを使って一括割り当てできるものを制限することだけです。またCanCanは、必要な場合には許可のための素晴らしい宝石です。

+0

あなたが使用しているセッションストアに関係なく、これを検索するユーザーには、関連するCookieがあります。違いは、Cookieにセッション自体が含まれているかどうか、またはCookieにデータベースに格納されているセッションと関連付ける不透明な識別子のみが含まれているかどうかだけです。どちらの場合でも、セキュリティが懸念される場合は、これらの種類のCookieのいずれかがセキュリティで保護されていない接続を介して送信される可能性を排除するため「安全」とマークする必要があります。 –

+0

クッキーがデフォルトで使用されている場合、クッキーは安全であるとは限りません。彼らはより速く、dbを汚染しませんが、安全ではありません。 – sekrett

0

1つのIDだけを保存している場合は、間違いなくCookieを使用してください。 ARセッションは依然として、要求をセッションに関連付けるためにクッキーにある種のIDを必要とします。

6

CookieStoreを使用しているときにセキュリティ上の問題があることは間違いありません。主な問題は、サーバー側でCookieStoreセッションを強制終了できないことです。誰かがあなたのクッキーにアクセスすると、簡単にログインすることができます。あなたがログアウトして新しいクッキーで新しいセッションを開始したとしても。

ActiveRecordStoreは少なくとも、セッションをデータベースから削除して無効にする機能を提供します。

これは良いブログ投稿です。 http://www.bryanrite.com/ruby-on-rails-cookiestore-security-concerns-lifetime-pass/

+0

優れたポイント。 –

関連する問題