セッションストアとして使用すると、私はredis-railsがセッションIDを暗号化されていない形式でクッキーに保存することに気付きました。セッションIDは安全な情報として扱われ、セッションハイジャックの試みを阻止するために暗号化されていないクッキーに公開されてはいけませんか?セッションストアとしてredis-railsを使用するのは安全ですか?
0
A
答えて
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を回避するためにユーザー入力をサニタイズします。
関連する問題
- 1. sync.Pool参照をコンテキスト値として使用するのは安全ですか?
- 2. セッションを使用してサイト構成を保存するのは、安全で安全な方法ですか?
- 3. シングルトンExecutorServiceを使用することは安全ですか
- 4. cURLコールはHTTPSを使用して安全ですか?
- 5. 安全性の低いHTTPサーバーの前で、IISを安全なリバースプロキシとして使用しますか?
- 6. レルムを安全なファイルストレージとファイルリーダーとして使用する
- 7. dllからインターフェイスを使用するのは安全ですか
- 8. Jetty - jettyのデフォルトサーブレットを使用することは安全です
- 9. クラウドアプリケーションでセッションを使用するのは安全ですか
- 10. ASP.NETでTask.Delayを使用するのは安全ですか?
- 11. codeigniterでセッションを使用するのは安全ですか?
- 12. Jinja2で "{{field(class = ...)}}"を使用するのは安全ですか?
- 13. CompletableFutureでThreadLocalを使用するのは安全ですか?
- 14. プロダクションコードでsetTimeoutを使用するのは安全ですか?
- 15. Tasksでlock()を使用するのは安全ですか?
- 16. iOS APPのバンドルIDをパスワードとして使用しても安全ですか?
- 17. Socket.LocalEndPointを一意のIDとして使用しても安全ですか?
- 18. セッションストアとは何ですか?
- 19. どの安全ネットをPerlで使用していますか?
- 20. ndbタスクレット内でimages.get_serving_url_async()を使用しても安全ですか?
- 21. Angular 5で[innerHTML]を使用しても安全ですか?
- 22. .toString()を使用するのはいつ安全ですか?
- 23. javascriptモジュールパターンを使用するのは安全ですか?
- 24. ヘッドセクションにASPサーバーサイドインクルードを使用するのは安全ですか?
- 25. async/awaitを使用するのは安全ですか?
- 26. MySqlにALGORITHM = INPLACEを使用するのは安全ですか?
- 27. TitanDBを使用するのは「安全」ですか?
- 28. shmgetの鍵として使用する安全な値
- 29. ブラケットのウェブサイトとテキストエディタは安全に使用できますか?
- 30. android.net.sipフレームワークを使用しても安全ですか?
いいえ、httpsでカバーするように転送中に保護されていない限り、そうではありません。 – pvg
サイトはhttpsを使用していますが、他の人のセッションを取得するために誰かがランダムな文字列をセッションIDとして試し続けることができます。彼らはできない? P.Sなぜ質問が下落されたのか分かりますか? – RajeshT
セッションが予測可能でないか、宇宙の年齢よりも時間がある場合を除き、彼らはできません。セッションIDはランダムで、予測できず、十分に大きくなければなりません。 – pvg