3

GoogleAPIを使用するWebアプリがあります。認証するプロセスは、googleを2回呼び出します。最初の呼び出しはを取得しcode、2番目の呼び出しはをと交換しcodeますtoken。どちらの呼び出しもredirect_uriパラメーターを取ります。最初の呼び出しは私が期待するようにこのパラメーターを使用してリダイレクトredirect_uriしますが、トークンを取得するための2番目の呼び出しはリダイレクトせず、このパラメーターを無視しているように見えることを検証します。それで、そのポイントは何ですか?

4

1 に答える 1

4

redirect_uriアクセストークンリクエストのパラメータは、 OAuth2.0仕様でREQUIREDとして説明されています。

その背後にある理由は、同じドキュメントのセクション10.6で詳細に説明されています。要するに:

  1. 攻撃者はrequest_uri、認証要求のを操作することにより、認証コードを取得できます。このトリックに気付くことができるのは、被害者(正当なユーザー)とサーバーの2人だけです。クライアントはこれらの操作に気づいていません。
  2. コードを使用しても、攻撃者はそれをトークンにアクセスするために交換することはできませんが、盗まれたコードを使用して「コールバック応答」を送信することにより、クライアントを欺こうとすることができます。
  3. クライアントが受信したコードをトークンに交換できる場合、攻撃者に被害者のデータへのアクセスを許可します。幸い、クライアントredirect_uriはサーバーが確認したものと一致しないため、リクエストは拒否されます。
于 2012-10-23T21:37:34.410 に答える