- 【Rails】外部からPOSTされてくるデータの扱いについて
- 2015.01.18 10:01 | 技術
- コメント(0)
-
この記事は最終更新日から1年以上が経過しています。
どうも、さつきさん on Railsです。
レールが敷かれた人生なんてまっぴらだよ!
※この記事は、過去にお友達のブログネタに寄稿したものを加筆・修正したものです。
ゴーストライターというほど大層なことは書いてないんですが、
この度友人がブログを終了するとのことで、お引越しさせていただきます。
3.x系以降はちょっと記述が変わってるので、その辺はまあ・・・
上手いこと工夫してください
この記事はRails 2.3.11(確か)、Ruby 1.8.7(たぶん)の環境を想定して書いてます。
雑ですいません。
自分がハマったのでメモ程度に。
前回の記事はこっちから外部へPOSTする際の問題でしたが、
今回は外部からPOSTされてくる場合です。
まずはauthenticity_tokenの説明から。- authenticity_token
- CSRF(Cross-Site Request Forgeries)を防止する目的で設置されたRailsの機能。
GET以外のメソッドでリクエストがあった場合(POST、PUT、DELETE)に、
セッションに格納されたauthenticity_tokenと渡ってきたパラメータの文字列を比較して、同じ値であれば通すという代物。
中身はこんな感じ「rsD/RawxJwfZv1ZIv1r8Pdl1wGQolUH5A/r2OcQQ5Q4=」
(でもauthenticity_tokenなんて設定した憶えがないし、viewに表示されてないじゃん。)
ソースを見てみると、フォームを作成した後にこっそりhiddenでついてきてます。
※当然RailsのFormHelperを用いて作成した場合に限ります。
一見ありがたい機能に見えますが、これがなかなか厄介。
ちょっと問題があるケースと、回避策を説明しますね。 - → 続きを読む
-
関連タグ:RoR authenticity_token authenticity token Ruby Rails 2.x CSRF Cross Site
コメント(0)