クロスサイト・リクエスト・フォージェリ
CSRF(クロスサイト・リクエスト・フォージェリ)
ウェブサイトはログイン機能を持ったものが多々存在します。しかし、ログインした 利用者からのリクエストについて、利用者が意図したリクエストであるかを識別できる 仕組みを持たないサイトは、外部サイトを経由した悪意のあるリクエストを実行されて しまう可能性があります。
ウェブサイトから発行されたセッションIDを保持したまま、外部サイトへアクセスを 行うと、リンクなどのクリックによっては、そのセッションIDのセッションを利用 され、ログイン後のウェブサイト内で設定の変更や、退会をされてしまう可能性が あります。
発生する可能性のある脅威
ログイン後の利用者のみが利用可能なサービスの悪用
ログイン後の利用者のみが編集可能な情報の改ざん、新規登録
対策例
秘密情報の埋込みと更新ページにおける確認
セッションIDなどを付与し、投稿時に照らし合わせ確認する方法があります。
<input type="hidden" name="sid" value="6a0752gpmhignmnq9f5iah8h71">
更新ページにおけるパスワード確認
情報変更ページ前のパスワード再入力
更新ページにおけるRefererの確認
どのページからのアクセスであるのかを判断して、許可や拒否の判断を行います。
if( $_SERVER['HTTP_REFERER'] != 'http://○○/confirm.php' ) { exit(); }