TaniWebの攻撃手法に「クロスサイト・リクエストフォージェリ(CSRF)」というものがあります。これはWebの仕様を利用した攻撃手法です。東京ディズニーランドならTDL。ThingならELT。クロスサイト・リクエストフォージェリならCSRFです。メールフォームやBBS、TwitterなどのWebサービスなど、フォームに入力した内容を送信するプログラムの場合はCSRF攻撃が可能ですので、プログラム側で防御策を実装しておく必要があります。このページではクロスサイト・リクエストフォージェリ(CSRF)の仕組みと、その対策法を解説していきます。フォーム内容が送信される仕組みクロスサイト・リクエストフォージェリ(CSRF)を防ぐためにはリファラ(送信元URL)でのチェックの問題点トークンによるチェックについてフォーム内容が送信される仕組みWebページ上で入力した内容を送信する時は、同一ドメイン内からだけでなく他のドメインからでも送信することができてしまいます。これはWebの仕様です。「そのページにアクセスしただけ(表示しただけ)で、他人のサイトのお問い合わせフォームにデータを送信する」というような罠のページを作っておき、(Aさんが作ったとします)その罠ページへ誰か(Bさん)を誘導すれば、(誘導の方法は色々あります)Aさんが用意した内容をBさんに送信させることができるのです。他人になりすまして送信できるということです。メールフォームでの送信だけでなく、BBSになりすまし投稿ができてしまったら大問題です。犯行予告などを勝手にされてしまいます。被害者(Bさん)は自分がなりすまし投稿の被害にあったことに気づくことすらできません。このように、他のサイトからフォーム内容を送信する攻撃手法をクロスサイト・リクエストフォージェリ(CSRF)といいます。クロスサイト・リクエストフォージェリ(CSRF)を防ぐためには上記のようにクロスサイト・リクエストフォージェリ(CSRF)攻撃というのは、「フォーム内容を他のドメインへも送信できる」というWebの仕組みが原因となっています。これはWebの仕様ですから、変えることはできません。送信側が変えられない以上は、メールフォームやBBSなどフォーム内容を受信するプログラム側で「送信されてきた内容が正規ユーザーからのものかどうか?」を検証する仕組みを持つ必要があるのです。その際に使われるのが「リファラ(送信元URL)でのチェック」や「トークンでのチェック」です。リファラ(送信元URL)でのチェックの問題点フォーム内容を送信する時は、リファラ(送信元URL)が付いた形で送信されるのが普通です。そのフォーム内容を受信するプログラム側でリファラ(送信元URL)をチェックし、もし他のドメインからの送信だった場合は拒否する設定をすれば、クロスサイト・リクエストフォージェリ(CSRF)攻撃を防げることになります。実は、リファラというのは偽装して送信することが簡単にできます。リファラを偽装して送信してくるような人がどれほどいるかは不明ですが、リファラチェック機能だけではCSRF攻撃を完全に防ぐことは不可能ということになります。トークンによるチェックについて自分のサイト内(フォームのページ)だけで発行される「トークン」と呼ばれる認証チケットのようなものを発行し、フォーム内容が送信される際にはそのトークンもセットで送信されるようにしたとします。受信するプログラム側でトークンが自分のサイト内(同一ドメインのページ)で発行されたものかどうかをチェックすれば、他のドメインからの送信を防ぐことができます。これだけを聞くと「さっきのリファラによるチェックとほとんど同じじゃないか」と思われるかもしれません。確かに、このトークンもリファラの時と同じように偽装して送信することができます。トークンがリファラと決定的に異なるのは「一人一人固有のものであり、さらに一定時間ごとに変更される」という点です。一人一人違う認証チケットなので、他人になりすまして送信することが不可能となります。上記のリファラチェックはドメインを利用したチェック方法なので一定の周期で変更することは難しいですが、トークンなら可能です。リファラチェックをさらに強化したものがトークンチェックだと言えるでしょう。このページと関連しているページ一覧サイト内を検索Twitterでフォローする開発者生放送クリックして作業部屋を覗き見る提供サポートなどアップデート情報この「アップデート情報」欄はコンテンツ・メーカーを使用して更新・表示しています。小規模なスクリプトドロップダウン式のスマホメニュースクリプトの無料ダウンロード画像をランダムで表示するスクリプトの無料ダウンロードマウスオーバーの際に画像をフェードで切り替えるスクリプトの無料ダウンロードタブで表示エリアを切り替えるスクリプトの無料ダウンロードタイトルをクリックするとスライドダウン表示されるスクリプトの無料ダウンロードページ内リンクをスクロールアニメーションさせるスクリプトの無料ダウンロードページ最上部にアニメーションで戻るボタンの無料ダウンロード主要SNS(ソーシャル)のボタンをまとめて設置できるスクリプトズーム演出で大きな画像を表示するスクリプトの無料ダウンロードうんこまみれスクリプトの無料ダウンロード関連ページ一覧Web制作のブログブログ一覧ファーストステップでは人や世の中の役に立つプログラムを作っています。使ってみて、改善点や要望などがあればお申し出ください。