iOSアプリの「偽のクライアント」を防ぐ

私たちは、http webserviceを使ってサーバーにデータとコマンドを送信するアンドロイドとアイオスのアプリケーションを持っています。偽のクライアントもサーバーに何かを送る可能性をどうやって防ぐことができますか?データ/コマンドが実際に私たちのアプリケーションから来た場合、私はどのようにしてserversidelyを決定できますか?

4
アンドロイドアプリもありますが、書き留めて忘れました。
追加された 著者 rakete,
誤解を招くようなAndroidタグを削除したい場合があります。
追加された 著者 Jean-Philippe Roy,
まだあなたには不明な点があるのですか、それとも答えられた質問はありますか?
追加された 著者 DasFuxx,

4 答え

あなたは本当にそれを防ぐことはできません。あなたのサービスを悪用する人々のためにそれをより困難にするいくつかのテクニックがあります。

簡単なチェックは、Webサービスを呼び出すユーザエージェントをチェックすることです。もう1つの非常に一般的な方法は、Webサーバー上でユーザー/パスワード認証を使用して簡単な認証を使用する方法です。ユーザー名とパスワードはアプリに埋め込まれます。

十分な時間がある場合は、この2つの方法と組み込みSSL証明書による認証を組み合わせて使用​​することを検討する必要があります。これをプロジェクトに追加するだけで、本当にサービスを悪用したい場合は、少なくともこのアプリケーションをアプリケーションから抽出する必要があります。

他にも便利なテクニックがいくつかありますが、リバースエンジニアリングやネットワークスニッフィングを防ぐことはできません。

敬具、 フックス

9
追加された
それに加えて、サーバー上で定期的にランダムな認証トークンを生成し、プッシュを介してクライアントに送信することもできます。クライアントはこのトークンを使用してWebサービスを呼び出す必要があります。
追加された 著者 HeikoG,

最も堅牢なソリューションは試用しないことです。 DasFuxxの答えのようなテクニックは、それをかすかに難しくすることを示唆していますが、誰かがあなたのアプリケーションをいつも逆コンパイルして、それに埋め込まれた秘密を得ることができます。

代わりに、マルチプレイヤーゲーム開発のルールに従ってください:

クライアントを信頼しないでください。

あなたのアプリケーションをユーザーインターフェースとして考えないでください。 ネットワークプロトコル/ API については、ユーザーインターフェースとして考えてください。悪用されないようにそのインタフェースを設計します。

それは完全には可能ではないかもしれませんが、あなたが成功すれば、あなたは真のセキュリティを持っています(DRMシステムと同じ敗戦と戦うよりも)。

3
追加された

私はoAuthを実装します。このようなソリューションの実装方法の詳細については、次のリンクをご覧ください。

2
追加された
モバイルアプリがクライアントの秘密情報(秘密情報)を秘密にすることはできないと想定できないため、oAuthを使用してこの問題を解決する方法はわかりません。アプリのクライアント認証情報を正確にして偽装することができます。
追加された 著者 KFL,

あなたはできません。それは簡単です...

1
追加された