OWASP defines Cross-Site Request Forgery(CSRF)as
エンドユーザーに、現在認証されているWebアプリケーションで不要なアクションを強制的に実行させる攻撃。
(強調鉱山)
攻撃の例はリンクhttp://example.com/logout
クリックするとログアウトされる認証済みユーザーに送信されます。ユーザーに提供したリンクをクリックさせることで、システムの状態(この場合はユーザーログイン)を変更することができました。
認証されているかどうかに関係なく、誰でも投票できる投票システムを想像してみてください。システムは誰が投票したかを追跡しません(それ自体が明らかに問題です)。
投票カウンターを増やすHTTP呼び出しを制限なしで再生できます。 クリックして(ログインせずに)他の誰かにそのリプレイリンクを送信し、投票カウンターを増やすことは、CSRFの脆弱性と見なされますか?
私の意見では、これはCSRFではないということです:
そのログインをクリックして(ログインせずに)クリックして投票カウンターを増やす誰かにその再生リンクを送信することは、CSRFの脆弱性と見なされますか?
CSRFの2013 OWASPエントリ を確認すると、彼らの攻撃シナリオ(私の心に)は、あなたの例に似た何かを説明しているようです:
このアプリケーションを使用すると、ユーザーは秘密を含まない状態変更要求を送信できます。したがって、攻撃者は被害者のアカウントから攻撃者のアカウントに送金するリクエストを作成し、この攻撃を、攻撃者の制御下にあるさまざまなサイトに保存されている画像リクエストまたはiframeに埋め込みます。
この例の場合、認証は必要ないため、そのシナリオはすべての場合に当てはまります。攻撃者はユーザーにサイトに対してリクエストを発行させ、状態を変化させる可能性があります。
OWASPが認証されているセッションについて言及しているのは、サイトの状態変更に影響を与えるために何が必要かについての彼らの側の仮定を反映していると思います。私は認証が実際にCSRFの定義の一部であるとは思いません- CSRFに関するウィキペディアのエントリ の言及:
CSRFには通常、次の特性があります。
- これには、ユーザーのIDに依存するサイトが含まれます。
- そのアイデンティティに対するサイトの信頼を悪用します。
- ユーザーのブラウザをだまして、ターゲットサイトにHTTPリクエストを送信させます。
- これには、副作用のあるHTTPリクエストが含まれます。
そのため、実際にはアプリケーションがCSRFに対して脆弱であると考えることができると思います。ユーザーは副作用を伴うリクエストを発行せざるを得ず、そのリクエストは常に成功します(少なくとも理論的には、ユーザーのIPに関連付けられる可能性があります) 、 例えば)。
CSRFが純粋に攻撃者に「他の方法ではできないこと」を許可することについて確信がない-ユーザーを作成することであると主張することができると思う彼らがそうしなかったかもしれない何かをしなさい。