2017-09-10 2 views
0

セッションストアとして使用すると、私はredis-railsがセッションIDを暗号化されていない形式でクッキーに保存することに気付きました。セッションIDは安全な情報として扱われ、セッションハイジャックの試みを阻止するために暗号化されていないクッキーに公開されてはいけませんか?セッションストアとしてredis-railsを使用するのは安全ですか?

+0

いいえ、httpsでカバーするように転送中に保護されていない限り、そうではありません。 – pvg

+0

サイトはhttpsを使用していますが、他の人のセッションを取得するために誰かがランダムな文字列をセッションIDとして試し続けることができます。彼らはできない? P.Sなぜ質問が下落されたのか分かりますか? – RajeshT

+0

セッションが予測可能でないか、宇宙の年齢よりも時間がある場合を除き、彼らはできません。セッションIDはランダムで、予測できず、十分に大きくなければなりません。 – pvg

答えて

1

セッションIDクッキーはセッションにクライアントをリンクするだけで(まともな)方法です。クライアントは、要求に応じることができる何らかの種類のクレームを持っていなければなりません。

これは、CookieStore、Redis、ActiveRecord、またはmemcachedのいずれを使用している場合でも適用されます。

セッション識別子を固定されたsaltまたはsaltなしで暗号化することは、攻撃者がman-in-the-middleまたはXSS攻撃でCookieにアクセスできるため、何も時間を費やすことはありません。

塩を使用していた場合は、それもユーザーにリンクする必要があります。あなたは1つではなく2つの問題があります。

ユーザーエージェント、IPなどのソルトのような斬新なアプローチを使用することはできますが、クライアントについて知っていると思うものはセキュリティ上の利点はほとんどありません。

@pvgが言ったように:

セッションIDのは、単に、ランダムに予測不可能かつ十分 大きくなることがあります。セッションを保護するために

意味のある方法です:man-in-the-middle攻撃を阻止するために

  • HTTPSを使用し。
  • セッションの固定を避けるためにユーザーのログインとログアウトを行う場合は、reset_sessionに電話してください。
  • XSSを回避するためにユーザー入力をサニタイズします。
関連する問題