本日も皐月晴れ

ゲーム攻略からプログラミングまで、その時に思いついたことをだらだらと書き連ねていきます。

program.jpg
【Rails】外部からPOSTされてくるデータの扱いについて
2015.01.18 10:01 |  技術
コメント(0)
program.jpg

この記事は最終更新日から1年以上が経過しています。

Rails 2.x系のお話です。

どうも、さつきさん 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=
CSRFについては、この辺でお勉強してみてください。

(でもauthenticity_tokenなんて設定した憶えがないし、viewに表示されてないじゃん。)

ソースを見てみると、フォームを作成した後にこっそりhiddenでついてきてます。
※当然RailsのFormHelperを用いて作成した場合に限ります。

一見ありがたい機能に見えますが、これがなかなか厄介。
ちょっと問題があるケースと、回避策を説明しますね。
→ 続きを読む
関連タグ:RoR authenticity_token authenticity token Ruby Rails 2.x CSRF Cross Site

コメント(0)