2016-10-19 6 views
1
  • 被害者はのOAuth2認証コードフローにおける認証サーバでシステムブラウザを介して認証し、
  • 被害者がのOAuth2を起動し、攻撃者のWebサイト上のリンクでクリックするようにだまされる認証サーバーによってセッションCookieが発行されます犠牲者によるクライアントからの許可リクエストクライアントIDを持つ認証サーバーとリダイレクトURI Oauth2クライアント
  • Authorization ServerはセッションCookieがAuthorization Serverによって既に発行されているために犠牲者を認証する必要はありませんが、攻撃者のクライアントへのアクセス - この場合は被害者が行うと想定されています
  • 許可サーバーは、犠牲者のブラウザに、犠牲者のリダイレクトURI(リダイレクトURI)をリダイレクトします。これは、犠牲者の承認コードを使用して承認応答を返します。
  • 攻撃者は被害者の認証コードを所有していますリフレッシュのために交換することができます&アクセストークン

犠牲者が攻撃者のクライアントへのアクセスを許可しないことを除いて、これに対して可能な最良の予防措置は何ですか? 平均的なインターネットユーザーは、通常、普通の日に多くのことを考えずに受け入れることをクリックします。Oauth2で次のようなCSRF攻撃を防止するにはどうすればよいですか?

+0

あなたは[情報セキュリティスタック交換](http://security.stackexchange.com/)? – timmyRS

+0

私はアプリケーションのセキュリティは、セキュリティとコーディングの間の多分野であると考えて、おそらくStackOverflowにもっと属していると思います。情報セキュリティスタック交換で議論された情報セキュリティははるかに広い分野であり、多くの人々が開発者ではありません。彼らは異なるレベルの問題を扱い、時には理論的な観点から問題を扱います。つまり、これは実際にプログラミングの問題だと私は考えています。 –

答えて

0

これを有効にするには、攻撃者はクライアントを認証プロバイダに登録する必要があります。認証プロバイダはエンタープライズ設定では使用できません。また、リダイレクトURIが登録されていないため、APはユーザーを攻撃者にリダイレクトするべきではありません。

誰でもクライアントを登録できる公開APの場合、これは実際問題ですが、これも意味があります。ユーザーが攻撃者のアプリケーションを承認すると、攻撃者のアプリケーションにアクセスできます。この点で通常のアプリと変わらないので、ユーザーは気をつけなければなりません(あなたが正しいうちに大半のユーザーは何かに対してOKをクリックします)。

APは、たとえばユーザーレポートに基づいてブラックリストを維持することができますが、それは弱いコントロールです。 APがおそらくできることは、ユーザーに十分な情報と警告を提供し、OKボタンを数秒間押して読み上げようとすることです。

関連する問題