- クロスサイトリクエストフォージェリ(CSRF)についてまとめる。
CSRFとは
- 本来拒否すべき無関係なWebアプリからのリクエストを受信・処理し、ユーザーが意図しない処理を行わせる攻撃手法。
CSRF発生の流れ
CSRFがもたらす被害
-
ユーザーの意図しないWebアプリ上の処理の実行
- 本来はログインユーザーのみが許可される記事の投稿処理など。
CSRFへの対策手段
-
ワンタイムトークンの利用 ※推奨
- 正規の送信元かどうかを割り当てたワンタイムトークンによって判定する。
- 処理の流れ
- WebアプリAは、リクエスト前にクライアントに対してワンタイムトークンを生成する。
- クライアントは、指定されたワンタイムトークンを付与してリクエストを実行する。
- WebアプリAは、セッションに格納したワンタイムトークンと送信されたワンタイムトークンが一致しているかを確認する(一致しない場合、リクエストを受け付けない)。
-
ユーザー再認証
- 重要な操作の前に、再度ログイン認証をさせるステップを追加する。
- ユーザービリティは低下する。
- 重要な操作の前に、再度ログイン認証をさせるステップを追加する。
-
リファラ(参照元URL)チェック
- HTTPリクエストヘッダーのリファラを確認し、許可する送信元からのリクエストかを確認する。
- リファラは書き換え可能。
- HTTPリクエストヘッダーのリファラを確認し、許可する送信元からのリクエストかを確認する。