Rails 2.0・その11(セッションの情報は全てクライアントのクッキーに書かれる)
Rails 2.0 がおっしゃいますに、結局セッションに入れる情報ってユーザーIDだけぐらいで短いから、セッションの情報は全部クッキーに入れちゃえばいいんじゃね?みたいに割り切っているようです。
例としては、コントローラ辺りに、session[:food] = 'nikkorogashi'
と書いて、そこの処理を通りますと、session オブジェクトが文字列化(Marshal)されてBase64エンコードされてクッキーに保存されます。
要するにクッキーに保存しやすい文字列に変換されます。
決して暗号化されて保存されるわけではありません。
やる気なら誰でも自分のクッキーの情報を見て、session にどういう値が入っているのかを解析できるので、大切な情報(クレジットカード番号とかパスワードとかスリーサイズとか)は session には入れない方がいいです。
どうやってこのようにクッキーを解読するのか、はこちらのブログがいいと思いましたので参考にしてみてください。
じゃあ、クッキーじゃない場所にセッションの情報を保存したいんですけど、みたいな場合はどうするか、というと、
config/environment.rb に
を書いてください。クッキー保存オプションは、
:active_record_store, :p_store, drb_store, :mem_cache_store, :memory_store を選べます。
それぞれのオプションを使うときの注意点はこちらのサイトやこちらのサイトなどを参考にしてみてください。
active_record_store については、私のエントリも役に立つかもしれません。
【広告】
例としては、コントローラ辺りに、session[:food] = 'nikkorogashi'
と書いて、そこの処理を通りますと、session オブジェクトが文字列化(Marshal)されてBase64エンコードされてクッキーに保存されます。
要するにクッキーに保存しやすい文字列に変換されます。
決して暗号化されて保存されるわけではありません。
やる気なら誰でも自分のクッキーの情報を見て、session にどういう値が入っているのかを解析できるので、大切な情報(クレジットカード番号とかパスワードとかスリーサイズとか)は session には入れない方がいいです。
どうやってこのようにクッキーを解読するのか、はこちらのブログがいいと思いましたので参考にしてみてください。
じゃあ、クッキーじゃない場所にセッションの情報を保存したいんですけど、みたいな場合はどうするか、というと、
config/environment.rb に
config.action_controller.session_store = クッキー保存オプション
を書いてください。クッキー保存オプションは、
:active_record_store, :p_store, drb_store, :mem_cache_store, :memory_store を選べます。
それぞれのオプションを使うときの注意点はこちらのサイトやこちらのサイトなどを参考にしてみてください。
active_record_store については、私のエントリも役に立つかもしれません。
【広告】