CSRF(クロスサイト・リクエスト・フォージェリ)とは?
ウェブサイトの中にはログイン機能を設けているものが多々ありますが、ログインした利用者からのリクエストについて、利用者が意図したリクエスト化を識別する仕組みを持たない場合、悪意のあるリクエストを受け入れてしまう可能性があります。この場合、悪意ある人が用意した罠により、利用者が予期しない処理を実行させられてしまう可能性があります。
このような問題をCSRF(クロスサイト・リクエスト・フォージェリ)の脆弱性といい、これを悪用した攻撃をCSRF攻撃といいます。
具体例もあるのでWIKIがわかりやすい。
要は別ページ(意図しないページ)からPOSTしてしまう仕組みです。
被害
- ログイン後の利用者のみが利用可能なサービスの悪用(不正な送金、意図しない商品購入や大会処理など)
- ログイン後の利用者のみ編集可能な情報の改ざん、新規登録(設定の不正な変更)
- 主にCookieを用いたセッション管理、特に金銭処理が発生するサイトなどでは非常に重要
対策
- トークンを発行し、処理を受け取る画面でその確認をする。(最も確実性が高い。工数も中程度。)
- Referが正しいリンク元かを確認し、正しい場合のみ処理を実行する(Refererをオフにしていると正常な画面遷移もできない。)
- 逆になんらかの情報を確定や変更しないページでは不要。