CSRF
CSRFとは
cookieベースのセッションを使用している場合、ブラウザはリクエストの度にcookieを自動的にドメインに送信する。 そのため、ユーザーがログインした状態でWebアプリケーションに仕込まれた悪意のあるコードやリンクを実行した場合にあたかもユーザーによる処理として実行されてしまう。
例
ユーザーAがある掲示板にて書き込みを閲覧していたとする。その中に攻撃者が仕掛けのあるHTML image 要素を含めた書き込みを目にする。その要素が実際に参照しているのは画像ファイルではなく、ユーザーAのプロジェクト管理アプリを標的にしたコマンド(img src="http://www.webapp.com/project/1/destroy">)だったとする。
ユーザーAの
www.webapp.com
へのセッションが切れていなかった場合、ユーザーAの有効なセッションIdを含むhttp://www.webapp.com/project/1/destroy
がリクエストとしてサーバーに送られてしまい、結果、プロジェクトNo.1が削除されてしまう。
対策
.トークンによってリクエストの正当性を確認する
サーバー側でセッションにトークンを保存し、ブラウザからのリクエスト毎にトークンを含ませるようにする。 そうすることで、トークンが一致しない場合はリクエストを受け付けないようにする。