私は合理的に完了し、iOSアプリケーションで使用されるRESTサービスを持っています。 Ruby/Sinatraを使用して構築されていますが、実際にはそれは重要ではないと思います。RESTサービスの「パブリック」部分をスパムから保護するにはどうすればよいですか?
私はさまざまなエンドポイントでSSLを介したHTTP基本認証を使用しており、その部分は非常にうまく動作しています。
質問:HTTP基本認証で保護されていないRESTサービスの呼び出し部分からスパマーなどを停止する方法を教えてください。
例:ユーザー登録
はのは、REST呼び出しが体内にJSONオブジェクトを渡し(POST).../register_accountであると仮定しましょう。
明らかな理由から、この呼び出しでは、ユーザーアカウントにリンクされたユーザー名/パスワードは期待できません。
アイデアは以下のとおりです。
1)アプリは、独自の「ユーザー名」/パスワードを持っており、いくつかの呼び出しは、アプリケーション・資格情報をチェックします。 問題:デバイスなどを起動すると、これらの資格情報が検出される可能性があります。
2)アプリは、HTTPヘッダを介して秘密トークンをRESTサービスに渡します。 問題:(1)と同じ
このようなスパムコールを防ぐために一般的に使用されている方法はありますか?私はおそらく、ミックスのiPhoneのデバイスIDを導入する考えているが、まだ明確なアプローチを特定していない。
おかげ
と比較することができます。この宝石を使用します:https://github.com/datagraph/rack-throttleをレート制限に使用します。クライアントIDがデバイスID + IPアドレスのコンボであるようにサブクラス化します。また、アプリケーションの資格情報のアイデアを保持します。 – Riaz