https://teratail.com/questions/26966
仕掛ける側が、自サイトに飛ばして JavaScript や Flashでリファラを書き換え送信したら、リクエストの強要ができてしまいます(=攻撃者がリクエストを投げる人になる)
Flashは死んだので考える必要無いとして、JavaScriptでリファラを書き換えて任意のサイトに送信することはできるとか本当か?
ちょっと調べた感じだと最新ブラウザでは完全に塞がれているので、無理だと思う。
アドオンなら専用APIを使ってリクエストにプロキシーみたいな処理を割り込ませて、ヘッダー書き換えて送信する機能が作れるっぽいけど、
そんなのヤバいアドオンを入れちゃった時点でCSRF無関係にセキュリティヤバいのでサーバー側は想定する意味ないです。
やっぱりCSRFを実行させるためにリファラーを改ざんするの不可能な気がするので、リファラーのチェックだけでCSRF対応できる気がする。
もちろんユーザーが自分でリファラ送信を拒否する場合はあるけど、「うちのサービス使うならリファラ出せコラ」ってエラー出しときゃ問題ないだろ。
CSRF対策でググるとトークン使った方法ばっかり出てくるけど、別にそこまでやらなくてもいいのでは?って感じする。
CSRFを警戒するってことは変な情報をsubmitされたくないだろうし、submitを受け付けるAPIはPOSTとかで受け付けてるだろうし、
いきなり知らないURLのリファラ持っている(つまり外部サイトの)POSTリクエストとかが飛んできてる時点で、全部ヤバいので拒否っとけばいいんじゃねーの?
外部からブラウザ上でユーザーの処理にちょっかい出してリファラを偽装してPOSTリクエストする処理は出来ない(ブラウザで禁止されてる)ので、CSRF攻撃は防げる。
という認識なんだけど、どうなんだろう。
古い記事だから当時のブラウザではできたってことなんやろ
と思うじゃん、ベストアンサーへの指摘でotnさんも 改竄できるのはあくまでリクエストを投げる人であって、CSRF攻撃を仕掛ける人では無い とあるので、当時でもすでに出来ないと思...