クロスサイトリクエストフォージェリ(CSRF)とは?攻撃手法と対策

Webアプリケーション側の脆弱性を利用した攻撃方法。この攻撃はWebアプリケーションとは他のサイトからの不正リクエストを処理してしまう。

攻撃手法の例

クロスサイトリクエストフォージェリ(CSRF)は、まず攻撃者は事前に攻撃用スクリプトが組み込まれた攻撃用サイトを用意する。

攻撃用スクリプトは掲示板などの攻撃対象サーバへ不正リクエストを送信するようになっている。

そして、ユーザーをこの攻撃用サイトへ誘導するようなURLリンクをサイトやメールに設置する。

ユーザーがそのURLリンクをクリックすることで、攻撃用スクリプトが実行され攻撃対象サーバの掲示板などに書き込みが行われる。

このように攻撃者はユーザを踏み台として攻撃対象サーバを攻撃するため、ユーザーが攻撃者として判断されてしまうことがある。

対策方法

対策方法として、送信側の送信フォームが自分のサーバで生成されてものかを確認すればよい。

まず、Webアプリケーション側の自分サーバでフォームを生成して表示する際に、ワンタイムトークンをランダムな文字列を生成する。

そして、ワンタイムトークンはフォーム表示の際にinputタグのhiddenに記述して埋め込んでおく。

<input type="hidden" name="token" value="{ワンタイムトークン}" />

サーバへ送信する際にこのhidddenのワンタイムトークンの値も送信され、受け取ったサーバ側でそのトークンが自分のサーバで生成されたトークンかチェックする。

こうすることで、正しいワンタイムトークンを持っていないフォームから送信は拒否することができる。

コメント