次のシナリオを想像してください。
API と Web アプリケーションを作成しました。ユーザーは Web アプリからサインアップし、一意の API キーを受け取ります。次に、アカウントの「クレジット」を購入できます。これは、単にドルを 1 対 1 で表したものです。
ユーザーが API 呼び出しを実行すると、API キーが渡されます。このキーは、顧客を識別し、必要に応じてクレジットを差し引くために使用されます。
ここには明らかな問題があります。ユーザーが自分のサーバーからこの呼び出しを実行し、キーが非公開に保たれている場合、すべて問題ありません。しかし、独自のサーバーを持っていない顧客にはどのように対処すればよいでしょうか? たとえば、単純な Android アプリをサーバーなしで Play ストアに公開したユーザーが、私の製品を統合したいと考えているとします。キーはクライアント側に保持する必要があります。その後、悪意のあるユーザーがアプリケーションの難読化を解除し、キーの所有者のクレジットを使用して不正な API 呼び出しを実行する可能性があります。
この問題はどのように解決できますか? このシナリオを処理する方法はありますか?