4

私はこの投稿を読みましたCSRFを理解する - 簡単な質問 しかし、CSRFトークンがCSRFトークンをどのように防ぐことができるかまだ理解していません。

私を混乱させた主な問題は、攻撃者が私のサイトに http リクエストを送信できるのに、応答を読み取ることができないのはなぜですか?

1、すべての投稿リクエストの前にトークンを取得するための http リクエストを投稿すると、攻撃者はトークンを取得するための「トークンの取得」リクエストを作成することもできます。

2、.html ページのロード中に隠し入力にトークンを設定すると、攻撃者は「get html」リクエストを作成してこの .html ページを取得し、隠しページの値を読み取ることもできます。

攻撃者がリクエストを送信できるのに、レスポンスを読み取れない理由がわかりません。

4

1 に答える 1

2

攻撃者は自分でリクエストを行うことはまったくできません。彼ができることは、被害者 (または被害者のブラウザ) をだましてその要求を行うことです。したがって、応答は被害者のブラウザにも返されます。

ここでの問題は、攻撃者が URL を選択できることです。応答がなくても、その URL にアクセスすると、被害者に有害な結果をもたらす可能性があります。

攻撃者が (単に URL にアクセスするのではなく) 被害者をだましてリクエストを行わせる必要がある理由は、被害者がそれを行うと、被害者のセッション Cookie も一緒に送信されるため、認証されたアクションのように見えるからです。サーバー。

.html ページの読み込み中に非表示の入力にトークンを設定すると、攻撃者は "get html" リクエストを作成してこの .html ページを取得し、非表示のページの値を読み取ることもできます。

攻撃者は、被害者のセッションではなく、自分のセッションの非表示の入力のみを取得できます。この隠された入力は、セッションごとに異なります (そうでなければ意味がありません)。

CSRF トークンは、すべての (重要な) 要求に、ユーザーのセッションと一致する必要があるランダムなデータが含まれていることを確認します。このように、攻撃者は完全な URL を推測して、誰かをだましてクリックさせることはできません。

于 2012-07-02T03:36:33.290 に答える