タグ

ブックマーク / memo.yomukaku.net (2)

  • Rails 3.0.4と2.3.11からXHRリクエストの際もCSRFトークンの検証が必須になったので注意 - YomuKaku Memo

    Rails 3.0.4と2.3.11がリリースされました。重要なセキュリティ対策のリリースのようです。 最も大きな変更点はCSRF対策強化で、この結果として、AJAXのために従来使用していたJavaScriptのコードでは、get以外のメソッドの部分が動作しなくなるため、当該箇所の修正が必要になります。 RailsではCSRFの防止にトークンが用いられています。Rails 3.0.3以前はAjaxのXHRリクエストではCSRFが起こりえないという前提でトークンの検証を行わないようになっていましたが、FlashやJava appletを利用した場合にcsrfが起こる可能性があるとのことで、Rails 3.0.4(およびRails 2系のRails 2.3.11)ではXHRリクエストの場合もトークンの検証を行うように変更されたようです。 したがって、Rails 3.0.4(およびRails 2

    kiyo560808
    kiyo560808 2011/02/13
    3.0.3以前はAjaxのXHRリクエストではCSRFは起こりえない前提でトークンの検証はなかったが、FlashやJava appletで起こる得るので、3.0.4及び2.3.11ではトークン検証を行うように変更。検証に失敗するとsessionがリセットされる。
  • Railsでcookieが無効にされている場合にエラーメッセージを表示する方法 - YomuKaku Memo

    Railsで作成したアプリで、ユーザーがブラウザーのcookieを無効にした状態でpostのアクションを行った場合、次の図のようなエラーメッセージが表示されます(production環境の場合)。 原因: ActionController::InvalidAuthenticityTokenがraiseされているため なぜ上のようなエラーが表示されてしまうのでしょうか? 多くのRailsアプリは、何らかのユーザー管理機能を持っています。 つまり、ユーザーのログイン状態をsessionによって管理しています。 cookieにはmemcacheやdb等のバックエンドに保存されたsessionの内容をユーザー(のブラウザー)と紐づけるためのsession_idを保存されています(例えば31c728de9c1d9d273b6e13271a44812cのようなランダムな文字列として)。 このようにs

    kiyo560808
    kiyo560808 2010/12/13
    cookieが無効にされている場合に何かpostを行おうとするとActionController::InvalidAuthenticityTokenの例外がraiseされるため、この例外をrescueして適切と思われるエラーページを出力するようにする
  • 1