CSRF

 CSRF攻撃とは、Webアプリケーションのサーバー側機能を、利用者の意図に反して勝手に実行させる攻撃である。

 掲示板の例を用いて説明しよう(図1)。誰でも書き込みできる掲示板example.jpがあり、図2の入力フォーム(要点のみ)から投稿できるとする。これに対して、攻撃者がevil.example.comに、図3の罠のページを用意したとする。

図1●CSRFの仕組み
[画像のクリックで拡大表示]
図2 CSRFの問題がある入力フォーム
図3 CSRFの罠ページ

 form要素のaction属性には同一生成元ポリシーのような制約はなく、どこでも好きなURLを指定できる。このため利用者がボタンを押すと、犯行予告が掲示板に書き込まれてしまう。

 さらに、この状態だと利用者がボタンを押さない限り攻撃は成功しないので、攻撃者はbody要素に以下のJavaScriptを追加する。

<body onload="document.forms[0].submit()">

 これにより、利用者が罠のページを閲覧しただけで犯行予告が利用者のブラウザーを通して書き込まれることになる。これがCSRF攻撃だ。

この先は会員の登録が必要です。今なら有料会員(月額プラン)は12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら