- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2021-09-25T10:40:54+09:00","default:k1rou","k1rou")
*CSRF [#rbd9f8b9]
#author("2021-11-15T04:22:16+00:00","default:k1rou","k1rou")
*CSRF とは [#pa7e78a4]
-クロスサイトリクエストフォージェリ
-XSRF
**クロスサイトリクエストフォージェリ とは [#pa7e78a4]
-Webサイトの[[ユーザ認証]]や[[セッション]]管理の[[脆弱性]]を悪用して、利用者にWebアプリケーションに対して不正な処理要求を行わせる攻撃手法。
-攻撃者が用意したサイトから不正な[[HTTP]]リクエストを送信して、利用者が意図しない操作を行わせる攻撃。
-不正な処理は、サーバ側で実行される。(クライアント側で実行されるのは、[[XSS]])
**攻撃の仕組み [#k9128732]
*攻撃の仕組み [#k9128732]
-form要素のaction属性に、他のサイトのドメインを指定する。
-form要素のsubmitが、action属性にクロスドメインが指定されていても、JavaScriptから操作できるHTMLの仕様を悪用。
-ユーザが意図しないformの送信が行われる。
**対策 [#b435cb9e]
***攻撃を防ぐ方法 [#qaff864a]
*対策 [#b435cb9e]
**攻撃を防ぐ方法 [#qaff864a]
-ログイン後、HTTPレスポンスに毎回異なる値を含めて、HTTPリクエストのたびに送信されるその値をWebサーバ側で照合する(異なっていた場合はエラーにする)
--POSTメソッドの[[hidden]]に秘密情報(ランダム値など)を挿入しておいてチェックする
-重要な操作や確定処理を行なう際に、[[パスワード]]の再入力を要求する。
-HTTP[[リファラ]]を確認して画面遷移の正当性(正しいリンク元からの遷移であるか)を確認する
--クライアントの設定でHTTP[[リファラ]]を送信しないようにしている場合は、正当なリクエストの場合も排除されてしまう
-[[Captcha]]を利用する。
***攻撃があったことをユーザに気づかせる方法 [#i2d6da92]
**攻撃があったことをユーザに気づかせる方法 [#i2d6da92]
-重要な操作があったことをメールで通知する
**関連サイト [#k94ae98f]
*関連サイト [#k94ae98f]
-CWE-352: Cross-Site Request Forgery (CSRF)~
https://cwe.mitre.org/data/definitions/352.html
**関連用語 [#b55bf0d7]
*関連用語 [#b55bf0d7]
-[[セキュリティ]]
-[[不正アクセス]]
-[[XSS]] -クロスサイトスクリプティング
-CSRFトークン
-[[クッキーモンスターバグ]]
-[[OAuth2.0]]
-[[OpenID Connect]]