質問: 誰かが私のWebサービス用に自分自身のクライアントアプリを作成するのを防ぐ方法はありますか? フロントエンドにRESTful Webサービスとそれと対話するために使用される市販のAndroidアプリがあるとします。エンドポイントが見えないようにSSLを使用することもできますが、それでも見つけるためにリバースエンジニアリングを行うことができます。 代わりにSOAPを使用することもできます。そのため、Webサービスへの呼び出しはもう少し複雑になります。しかし、これがRESTfulベースのサービスよりも優れているかどうかはまだわかりません。 私は自分のクライアントアプリにキーをハードコーディングして、自分のクライアントアプリだけがサービスを利用できるようにすることを考えていた。また、多少のコードの難読化も役に立つかもしれません。しかし、これは実際にどれほど役立つのでしょうか。 UPDATE: As JOW pointed out Fiddler httpsを復号化して完全な要求を見るために使用される可能性があります。ただし、Androidアプリのみを使用している場合は、Androidクライアントアプリでサーバー証明書をハードコーディングすることで解決できる場合があります。また、SOAP WS-Securityもありますが、それを回避するための手間のかからない方法でツールを機能させることができます。
回答: 既存のクライアントがPlayストアの全員に利用可能である限り、RESTまたはSOAPが使用されているかどうかにかかわらず、自分自身のクライアントを作成することは非常に簡単で簡単です。 Fiddler を使用してAndroidデバイスからのHTTPトラフィックをキャプチャするだけで、あなたのエンジニアを設計できます。キャプチャされたトラフィックに基づく独自のクライアント。 HTTPSトラフィックでも Fiddlerを使用して簡単に復号化できます。 HTTPメソッド、URL、ヘッダ、クッキー、ボディ、そしてあなたのキーはすべて表示されます。これが安全だとは思わない。 (Fiddlerと同じことができる他のリバースプロキシがあります。)