web-dev-qa-db-ja.com

Rogue / Fake iOSまたはAndroid apps?

開発者がリクエストの実行方法を発見した悪意のあるアプリから非公開のWeb APIをどのように保護しますか?

例としてInstagramのアプリを見てみましょう。InstagramにはPOSTメディアへのパブリックAPIリクエストがありません。公式のInstagramアプリ経由での投稿のみをユーザーに許可するというポリシーに基づいています。

ただし、許可されたように思われるサービスがありますPOSTアプリ外からのメディア。私は野心的な開発者がiOSまたはAndroid =アプリを使用して、POSTを実行するメディアを有効にしたリクエストを検出します。したがって、この開発者は自動投稿でInstagramをスパムすることができます。

また、Instagramはアプリに保存されているAPIキーまたはその他の方法でAPIを保護しようとしたと思います。

私の質問は次のとおりです。この種の攻撃からアプリをどのように保護しますか。これから完全に保護できない場合、次善の策は何ですか?

3
ryd3r

Webサービスを実行している場合、サービスのクライアント側はユーザーの改ざんから保護できないと常に想定する必要があります。ユーザーに送信するものはすべてリバースエンジニアリングできます。これは時間の問題です。

これに対する解決策は、代わりにサーバー側でセキュリティチェックを行うことです。 Instagramの投稿をスパムしている例では、APIへの呼び出しをレート制限することで、これを防いでいる可能性があります。たとえば、すべてのユーザーが投稿できるのは、たとえば1分間に2枚の画像だけであり、それ以上の投稿を試みるAPI呼び出しは投稿に失敗し、400シリーズのHTTPエラーを返します。

したがって、Instagramの例では、実際にAPIリクエストを送信することを阻止することはできません。したがって、受け取ったAPIリクエストをサーバー側で検証して、すべてが正当であり、APIが悪用されていないことを確認する必要があります。