私はAPIを保護する最良の方法を見つけようとしています。私はSSLのみを許可し、認証にはOAuth2を使用していますが、それは十分ではないようです。OAuth2とSSLでAPIを保護するには十分ですか
私が心配しているのは、正当なクライアントがAPIに対して行ったリクエストを調べて、OAuthのclient_idを盗むことができるということです。その時点で、正当なクライアントに偽装したい任意の要求を作成することができます。
これを防ぐ方法はありますか?私は人々がクライアントとサーバーだけに知られている秘密鍵を使ってパラメータのHMACハッシュを使用するのを見ましたが、私はそれに2つの問題があることを見ています。
- 悪意のあるユーザーがクライアントを逆コンパイルして秘密鍵を把握するのは非常に困難です(不可能です)。
- いくつかのパラメータは、のHMACハッシュを作るのが奇妙に思えます。たとえば、パラメータがファイルのバイトであった場合、HMACハッシュにすべてのものを含めますか?
OAuthの手順はSSL経由です。私は、ユーザーのマシン上で実行されているいくつかの異なるクライアントによって呼び出されるAPIを保護しようとしています。 OAuthフローから取得した認証コードは、リクエストのAuthorizationヘッダーにあるすべてのAPI呼び出しに渡されます。その後、サーバー上でコードが検証されます。 – Evan
これはOAuth2です。SSL以上でなければなりません。 –