2016-12-22 130 views
7

に:Securize AWS CognitoユーザープールクライアントID AWSのドキュメント(<a href="http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-client-apps.html" rel="noreferrer">Specifying User Pool App Settings</a>)から、静的なウェブ

唯一認可クライアントアプリがこれらを呼び出すことができるように、任意のアプリのクライアントIDまたは 秘密を確保するために、開発者の責任であります 認証されていないAPI。

セキュリティで保護された条件下で認証を行うためのスキーマはあります(静的なWebでクライアントIDをクリアにすることはありません)。

AWS samplesクライアントIDをクリアにして、ドキュメントの推奨事項を満たしていないようにします。また、どのような攻撃者も、静的なWebクライアントIDを使用して、不正なapiに対してブルートフォース攻撃を行うことができます。これを避ける方法はありますか?

答えて

2

これらの推奨事項は、アプリクライアントIDとシークレット(通常はモバイル開発)を使用する場合に適用されます。

アプリを作成するときに、オプションでそのアプリの秘密を作成することもできます( )。アプリ用の秘密が作成されている場合、アプリを使用するには秘密が である必要があります。 で書かれたブラウザベースのアプリケーションJavaScriptは、秘密のアプリケーションを必要としない場合があります。

Web上でCognitoを使用している場合は、秘密を生成する必要はありません(ユーザプールでアプリケーションを作成するときは、このチェックボックスをオフにします)。これは本当にApp Client Idをクライアント上にクリアテキストで残していますが、このシナリオではログインページを開いたインターネットに公開するよりもリスクがありません。攻撃者はログインに関係なく無差別にログインを試みる可能性があります。

Amazonがこのような場合(カスタムログイン実装の場合にはどうしたらよいか)は、スロットルリクエスト、ブラックリストIPなどに対して防御することですブルートフォース攻撃を実行するには実行不可能であるか、それともそれほど価値のないポイントを指します。

要するに、WebフロントエンドコードにApp Client Idを埋め込むことを心配する必要はありません。

希望すると便利です。

関連する問題