クロスサイト・リクエスト・フォージェリ

CSRF(クロスサイト・リクエスト・フォージェリ)

ウェブサイトはログイン機能を持ったものが多々存在します。しかし、ログインした 利用者からのリクエストについて、利用者が意図したリクエストであるかを識別できる 仕組みを持たないサイトは、外部サイトを経由した悪意のあるリクエストを実行されて しまう可能性があります。

ウェブサイトから発行されたセッションIDを保持したまま、外部サイトへアクセスを 行うと、リンクなどのクリックによっては、そのセッションIDのセッションを利用 され、ログイン後のウェブサイト内で設定の変更や、退会をされてしまう可能性が あります。

IPA 独立行政法人 情報処理推進機構

発生する可能性のある脅威

  • ログイン後の利用者のみが利用可能なサービスの悪用

  • ログイン後の利用者のみが編集可能な情報の改ざん、新規登録

対策例

  • 秘密情報の埋込みと更新ページにおける確認

    セッションIDなどを付与し、投稿時に照らし合わせ確認する方法があります。

        <input type="hidden" name="sid" value="6a0752gpmhignmnq9f5iah8h71">
    
  • 更新ページにおけるパスワード確認

    情報変更ページ前のパスワード再入力

  • 更新ページにおけるRefererの確認

    どのページからのアクセスであるのかを判断して、許可や拒否の判断を行います。

       if( $_SERVER['HTTP_REFERER'] != 'http://○○/confirm.php' ) { exit(); }