WEB脆弱性のCSRF(クロスサイト・リクエスト・フォージェリ)とは?
普通、Webページの入力項目に対して入力をして、書き込みを押すと、その入力データがサーバーに送られます。
たとえば、このWebページで、入力をしないで、悪意のあるページにアクセスしたとします。
すると、それだけで悪意のある入力データがサーバーへ送られる可能性があるのです。
そして、このような攻撃をCSRF(クロスサイト・リクエスト・フォージェリ)と言います。
たとえば、確認のページが、以下のようになっていたとします。
<form action="commit.php" method="post"> <input type="hidden" name="new_name" value="脆弱 太郎"> <input type="hidden" name="new_address" value="大阪府"> <input type="submit" name="back" value="戻る"> <input type="submit" name="commit" value="実行"> </form>
このときに、実行を押さず、以下のような悪意のページにアクセスしたら…。
<form action="http://○○/commit.php" method="post" name="f1"> <input type="hidden" name="new_name" value="いぱくん"> <input type="hidden" name="new_address" value="東京都"> </form> <script>document.forms['f1'].submit();</script>
アクセスしただけで、submit()が実行されて、脆弱 太郎・大阪府でなく、いぱくん・東京都が書き込みされてしまうのです。
これ、mixi(ミクシィ)のような会員制のサイトでは、自分のIDで悪意の第三者に書き込みがされてしまうのです。
当然、その書き込みが、不正送金、商品購入、退会処理の場合があるわけです!
CSRF対策としては、使用者と開発者では以下があります。
◆使用者としてのCSRF対策
とにかく、会員制のサイトにログインしたら、ログアウトするまではサイト以外のページにアクセスしない。