CSRF のバックアップ(No.1)
CSRF †
クロスサイトリクエストフォージェリ とは †
- Webサイトのユーザ認証やセッション管理の脆弱性を悪用して、利用者にWebアプリケーションに対して不正な処理要求を行わせる攻撃手法。
- 攻撃者が用意したサイトから不正なHTTPリクエストを送信して、利用者が意図しない操作を行わせる攻撃。
- 不正な処理は、サーバ側で実行される。(クライアント側で実行されるのは、XSS)
攻撃の仕組み †
- form要素のaction属性に、他のサイトのドメインを指定する。
- form要素のsubmitが、action属性にクロスドメインが指定されていても、JavaScriptから操作できるHTMLの仕様を悪用。
- ユーザが意図しないformの送信が行われる。
対策 †
攻撃を防ぐ方法 †
- ログイン後、HTTPレスポンスに毎回異なる値を含めて、HTTPリクエストのたびに送信されるその値をWebサーバ側で照合する(異なっていた場合はエラーにする)
- POSTメソッドのhiddenに秘密情報(ランダム値など)を挿入しておいてチェックする
- 重要な操作や確定処理を行なう際に、パスワードの再入力を要求する。
- HTTPリファラを確認して画面遷移の正当性(正しいリンク元からの遷移であるか)を確認する
- クライアントの設定でHTTPリファラを送信しないようにしている場合は、正当なリクエストの場合も排除されてしまう
攻撃があったことをユーザに気づかせる方法 †
関連サイト †
関連用語 †