2016-06-13 10 views
0

私はcordovaクライアントアプリケーションを持っています。ブラウザやその他の許可されていないデバイスが自分のAPIにアクセスするのを防ぐため、REST APIへのアクセスをモバイルコードバクライアントのみに制限します。私はjavascriptで何かを行う必要があり、クライアント側の場合クライアントサーバーREST APIセキュリティ

(アプリはcordovaで実行されます)が、私はちょうど私のコードの静的トークンを設定し、サーバーへの$.ajax()呼び出しを行い、ユーザーがそのトークンをコピーする可能性があるため、私はできませんトークンと$.ajax()コールを保護する方法が必要です。

どうすればよいですか?

ありがとうございます。

+0

モバイルクライアントユーザーが認証する必要がある場合は、各ユーザーに公開キーと秘密キーを割り当て、REST API呼び出しにHMAC署名を使用できます。 – bassxzero

+0

@bassxzero、認証はアプリでは必要ありません。 – Frank

答えて

0

特定のユーザーエージェントに返信するようにサーバーを設定できます。これはデフォルトのCordova WebKitユーザエージェントにすることも、config.xmlであなたのアプリ用にカスタマイズしたユーザエージェントを設定することもできます。 Cordova documentationOverrideUserAgentをご覧ください。

+0

okですが、 'userAgent'は手動で正しく置き換えることができますか? – Frank

+0

はい、いくつかの知識を持つデスクトップユーザーは、あなたのユーザーエージェントについて知り、手動で変更することができます。 Zappescu氏のように、これを 'device.platform'と組み合わせてアクセスするのは難しくなりますが、バックエンドへのアクセスを制限することが重要な場合は、認証を含めることを検討すべきです。 – Alfonso

0

デバイスのプラットフォームを取得するには、デバイスpluginを使用することをお勧めします。私はそれを私の内部使用統計に使用し、ユーザーがアプリケーションを開くと、実行時に "Android"、 "iOS"などの文字列を提供します。 あなたのサーバーと文字列を共有し、あなたが求めるものを持つことができます。

+0

ありがとうございますが、誰かが 'ajax'リクエストを複製し、' Android'をパラメータとして渡してサーバーにアクセスできると思います。 – Frank

関連する問題