質問: RailsでWebアプリを開発中なのですが、 諸事情により一部ページのみRailsデフォルトのCSRF対策を切らなければならなくなりました。 代替策としてそのページにアクセスされた際は リファラー内のドメインをチェックする感じにしようと思ってるのですが、 リファラーチェックのみではCSRF対策として不十分な場面って存在するのでしょうか?
回答: そもそもリファラーはブラウザから簡単に改ざんできるので簡単に突破されてしまいますよ。 なんらかのIDを発行し、先行画面でDB保存。 後続画面に HIDDEN & POST 送信、または ドメイン名を絞った Cookie などで渡し、 さらに後続画面でリファラーと組み合わせてチェックする。などの対策は必要かと。 IDも、連番とか推測可能な値は絶対に NG ですね。 少しでも手を抜くと、のちに ひどい目にあいますからご注意を...