Railsを使っていて自分で直接cookieを設定するという状況はほとんどなく、大抵はsessionをハッシュ感覚で、便利に利用してきた。Rails2.0以降はsessionの保存先はデフォルトでcookieになり、そのまま利用する限りcookieの有効期限は空欄のままなので、ブラウザを終了するまでsessionは保持されることになる。そして、次回ブラウザを起動すると、期限切れのcookie(その中にsessionが保存されている)は削除されている。 ほとんどの場合、上記デフォルト設定のまま使っていたか、またはrestful_authenticationなどに頼りきりだったので、いざ自分でsessionに有効期限を設定しようとした時、苦労してしまった。とても基本的なことであるのに...。 config/environment.rbでの設定 2009-01-01 00:00:00まで有効にし
Rails2.0の変更点で、セッション(session)データの保存先がクッキー(cookie)になったということを、よく目にする。確認してみると、確かに以前はtmp/sessionsフォルダの中に常にセッションファイルがあり、増え続けていたが、2.0環境にしてからはいつも空っぽだ。そうなると、本当にクッキーに保存されているのか?どのように保存されているのか?実際に覗いてみたくなった...。 クッキーを確認する MacOS X版のFirefox2.0のクッキーは、Firefoxの環境設定 >> プライバシー タブ >> Cookieを表示 ボタン、で表示される。 想像以上のクッキーの多さに驚く。一つずつ見ていてはキリが無いので、検索で「localhast」と入力してみる。 すると一気に絞り込まれ、Cookie名から「_test_slip202_session」が求めるクッキーだと予想できる
Rails 2.0 がおっしゃいますに、結局セッションに入れる情報ってユーザーIDだけぐらいで短いから、セッションの情報は全部クッキーに入れちゃえばいいんじゃね?みたいに割り切っているようです。 例としては、コントローラ辺りに、session[:food] = 'nikkorogashi' と書いて、そこの処理を通りますと、session オブジェクトが文字列化(Marshal)されてBase64エンコードされてクッキーに保存されます。 要するにクッキーに保存しやすい文字列に変換されます。 決して暗号化されて保存されるわけではありません。 やる気なら誰でも自分のクッキーの情報を見て、session にどういう値が入っているのかを解析できるので、大切な情報(クレジットカード番号とかパスワードとかスリーサイズとか)は session には入れない方がいいです。 どうやってこのようにクッキーを解
NasuaはRuby on Railsで作ったメモ帳WEBアプリです。って今ではすっかりRailsな話題を取り上げるだけとなってしまいました。。 Ruby On Rails ではログイン前もログインの後も同じセッションCookieを使用するためセッション固定攻撃に対する脆弱性があります。 以前の記事ではログインの後にセッションをリセットする方法で実装を行ってみましたが、試してみたところflashにセットした値が取得できないという不具合がありました。例えば、次のコードでは"logged out !"とい文字列がViewで表示されません。(たぶん使い方が悪いのでしょうが。。) def logout reset_session flash[:notice] = "logged out !" redirect_to(:action => "login_form") end そこで、自前でcooki
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く