GoogleAPIを使用するWebアプリがあります。認証するプロセスは、googleを2回呼び出します。最初の呼び出しはを取得しcode
、2番目の呼び出しはをと交換しcode
ますtoken
。どちらの呼び出しもredirect_uri
パラメーターを取ります。最初の呼び出しは私が期待するようにこのパラメーターを使用してリダイレクトredirect_uri
しますが、トークンを取得するための2番目の呼び出しはリダイレクトせず、このパラメーターを無視しているように見えることを検証します。それで、そのポイントは何ですか?
質問する
332 次
1 に答える
4
redirect_uri
アクセストークンリクエストのパラメータは、 OAuth2.0仕様でREQUIREDとして説明されています。
その背後にある理由は、同じドキュメントのセクション10.6で詳細に説明されています。要するに:
- 攻撃者は
request_uri
、認証要求のを操作することにより、認証コードを取得できます。このトリックに気付くことができるのは、被害者(正当なユーザー)とサーバーの2人だけです。クライアントはこれらの操作に気づいていません。 - コードを使用しても、攻撃者はそれをトークンにアクセスするために交換することはできませんが、盗まれたコードを使用して「コールバック応答」を送信することにより、クライアントを欺こうとすることができます。
- クライアントが受信したコードをトークンに交換できる場合、攻撃者に被害者のデータへのアクセスを許可します。幸い、クライアント
redirect_uri
はサーバーが確認したものと一致しないため、リクエストは拒否されます。
于 2012-10-23T21:37:34.410 に答える