回答(全1件)
ベストアンサー
回答の評価を上げる
以下のような回答は評価を上げましょう。
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
9
この機能は開放されていません
評価を下げる条件を満たしてません
私の認識では、暗号化された一時cookies(user_idが含まれています)をサーバが受取り、それを復号化して認証を行っているのですから、たとえcookieが暗号化されているとしても、それをそっくりそのまま盗んでしまえば、それを使って本物のユーザになりすませてしまうと思うのですが。。。
これは、komachiさんが正しいでしょう。教材の説明が間違っていると思います。cookie が盗まれれば、それが一時Cookie であってもセッションハイジャックは可能です。
おそらく、暗号化されているので、Cookieからは userid さえもわからないということ、 一時 Cookie なら、ブラウザを閉じれば値が破棄されるので、永続 Cookie よりは安全ということが言いたかったのでしょう。
Railsのセッション管理方法についてでは、CookieStore によるセッション管理は「クライアント側にセッション内容を保存するという仕様上、様々な問題を抱えていますので、利用しないほうがいいかと思います。」と書かれており、私もそのとおりだと思います。
他のフレームワークでは、セッション情報を暗号化してCookie に詰めてブラウザに保存したりしません。 Cookieは乱数で発生し、サーバ側のテーブルでセッション情報を対応させるのが普通です(Rails では ActiveRecordSessionStore ならそうなっている)。
この教材の続く章も見ましたいが、はっきり言って、セッション管理については、教材として悪いでしょう。セッションハイジャックについては、IPAの解説がわかりやすいと思います。
2016/09/27 06:47 投稿
コメント(3)
2016/10/05 11:38 編集
ちょっとよくわからないのですが Cookie がどう生成されていようが(セッションデータではなくセッションキーを保持する形であろうが) Cookie 盗まれたらセッションハイジャックされることに変わりない気がするのですが、そういったことまで防ぐ仕組みが ActiveRecordSessionStore にはあるのでしょうか?
2016/10/05 11:52
いえ、 Cookie が盗まれれば、ActiveRecordSessionStoreでもセッションハイジャックされます。すみません、ActiveRecordSessionStore の話は蛇足です。komachi さんもそこは理解していただいていると思います。
セッションハイジャックされにくくする方法としては、送信元IPをセッションテーブルに保存してチェックするとかがありますが、Cookie が盗まれること自身があってはならないことです。XSS 攻撃を防御したり、 http のアクセスに対して Cookie を漏らしたりしないように注意したりするほうが大事です。
isset($replyData['Comments']["total_count"]) ? $replyData['Comments']["total_count"] ?>
15分調べてもわからないことは、teratailで質問しよう!
92.59%
関連した質問
-
解決済
Rails 認証ダイアログを表示させたい。
Windowsで認証ダイアログを出力して、ユーザー名とパスワードを判定し、
正しかったらログイン成功ができる機能を作りたいのですが、どうすればできますか?
どなたか知っている方いま
-
解決済
[Railsチュートリアル第1章] Herokuにデプロイ出来ない
Railsチュートリアルを始めましたが、さっそく第1章で詰まってしまいました。
Railsチュートリアル第1章

チュートリアル通り、Railsプロジェクトを作りgithubに上げ
-
受付中
bootstrapテーマをrailsに入れる方法求む
bootstrapのテーマをrailsで使いたいと思い、無料のものをダウンロードし、app/assets/stylesheets,app/assets/ 
javascriptsな
-
受付中
railsのbundle exec rake testを実行するとターミナルでエラーが起こります(動...
現在、ruby on rails のチュートリアル第5章を進めています。 

テンプレートであるcontact.html.erbを作成後にテストを行うとターミナルで以下のようなエ
同じタグがついた質問を見る
-
Ruby on Rails 4
1373questions
Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。
-
セキュリティー
206questions
このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。
2016/09/27 22:31
ご回答ありがとうございます。ご提示いただいたIPAの解説を参考にします。また、railsではActiveRecordSessionStoreの使用を検討します。