現在、GoogleからOpenIDを使用してユーザーがサービスにログインできるようにするgolangのGAEアプリケーションを開発しています。明らかに各アカウントは1つのGoogleアカウントにマッピングされます。ユーザー登録のためにcaptchaを実装すべきか、あるいはOpenIDを使ってボット攻撃からのサービスを既に阻止する必要がありますか?Google App Engine Go - OpenIDを使用して、私もcaptchaを使用する必要がありますか?
答えて
まず、ボット攻撃の恐怖は、実際には予備の注意です。 CSRFトークン(あなたはとにかく使用する必要があります)を解析し、クッキーを処理すると、すでに攻撃者に十分な痛みがもたらされます。誰かがそれを行うための唯一の方法である独自のOpenIDプロバイダをセットアップすることに誰も気づかないだろう。
第2に、App EngineのOpenIDフェデレーテッド・ログインは、実行時のAPIではなく、ユーザーAPI機能です.OP(Facebook、Yahoo !, Steam ... Google)でOPを使用できます。ユーザーAPIには、2つのモード(アプリケーション設定で構成可能)が用意されています.OpenIDフェデレーテッド・ログインとGoogleアカウントのサインイン。必要なのはユーザーのGoogleアカウントだけですが、後者の方が使いやすいでしょう。ほとんどの場合パスワードなしの簡単なサインインが必要な場合は、OpenIDを選択してください。アプリの観点から見ると、どちらも同じように見えます。しかし、OAuthに行く最良の方法です。
GoogleアカウントAPIとOAuthの両方で、このような攻撃はほとんど不可能になり、OpenIDでは少しがより簡単になります。
https://developers.google.com/appengine/docs/go/users/overview
受け取り中 OpenID?次に、これはではなく、で十分です。 誰でもは、自分のドメインにOpenIDサイトを置くことができます。スクリプトを使用して10億のアカウントを作成し、サイトの1つでログインします。
に限定して受け入れていますか? OpenIDプロバイダですか?それで、あなたはOpenIDを使用することを意図したものではありません(実際にはなぜそれが作成されたのかとは正反対です)。しかし、その答えは次のようになります:アカウント作成時にOpenIDプロバイダーが自分のデューデリジェンスを実行してスパムアカウントを防ぐことを信頼していますか?
captchaは貧弱な解決策であり、現在はすべての実装が壊れています(しかし、それは全く異なるテーマです)。
GAE Goは私が知る限り、Googleアカウントのみを使用します。それに応じて私の質問を編集しました。 – ThePiachu
私の答えは変わらない - 私はすでに2番目の段落でそれをカバーしている。 –
いいえ、App EngineのOpenIDサポートは、どのOpenIDプロバイダでも動作します。それ以外の場合は、既存のUsers API上に提供する必要はありません。 –
- 1. はcaptchaを使用する必要がありますか?
- 2. google-app-engine-djangoまたはapp-engine-patchを使用するか、それ以外を使用する必要がありますか?
- 3. Google App EngineでGoベンダーライブラリを使用することはできますか?
- 4. Google App EngineのOpenID
- 5. Google App EngineでHunchを使用する
- 6. Google App Engineでフィードパーサーを使用する
- 7. Google App Engineでsqlite3を使用していますか?
- 8. Goパッケージでlog.Fatalを使用する必要がありますか?
- 9. OpenID属性交換 - 使用する必要がありますか?
- 10. Google App Engine Go-Python/Javaハイブリッドアプリケーション
- 11. 私はsingletableviewを使用する必要がありますか?
- 12. 私はフォームタグを使用する必要がありますか?
- 13. BLLを使用してもDALにアクセスする必要がありますか?
- 14. Google App Engineを使用したWebサービス
- 15. Google App Engineを使用したマルチユーザータイマー
- 16. Google App Engineローカルデータストアを使用したIllegalStateException
- 17. Google BigQueryを使用しており、Compute Engineを使用していますか?
- 18. Facebook Chat Google App Engineを使用しています
- 19. JMeterを使用してGoogle App Engineアプリケーションをロードする
- 20. マイクロサービスを使用してGoogle App Engineアプリケーションを実行する
- 21. Gmail APIを使用してメールを送信するGoogle App Engine
- 22. Eclipseを使用してMySQLをGoogle App Engineに接続する
- 23. データストアビューアを使用してエンティティを作成するGoogle App Engine
- 24. Springを使用してGoogle App EngineのUserServiceFactoryを配線する
- 25. GoogleでGoogle App Engineのチュートリアルを使用しているTodoリスト
- 26. Google App EngineからGoogle OpenIDにユーザーを移行する
- 27. NHibernate Desktop App:複数のセッションを使用する必要がありますか?
- 28. プロダクションコードでfmtを使用する必要がありますか?
- 29. 私はdjango reset_queries()を使用する必要があります
- 30. 私はRedisLocks(ServiceStack.Redis)を使用する必要があります
あなたの自動化されたプロセスがあなたのサイトで何をしているのですか?それは脅威モデルとコスト/利益のトレードオフのすべてに関するものです。確かにOpenIDをサポートしている場合、攻撃者は自分の望むだけの数のOpenIDプロバイダを自動的に作成することができます。 –