web-dev-qa-db-ja.com

Webサービスページに表示されるJSONデータを保護する方法

サーバーからデータを取得するためにWebサービスを使用するiOSアプリがあります。データを取得してJSONフィードをWebページにエコーし、iOSアプリがそれを解釈します。 SSLを使用しているので、転送中のデータが安全でないことに心配はありません。

私の問題は、誰でもWebサービスページにアクセスしてJSONデータを読み取ることができることです。誰かがこのデータを解釈するプログラムを作成することは難しくありません。そのデータにはユーザーの機密情報が含まれています。

ユーザーがURLを入力してデータを表示できないようにする方法、または安全に出力されるJSONフィードを暗号化して、それを読み取るためのキーが必要になるようにする方法を知りたいです。

3
user3762780

Webサービスに認証を追加する必要があるように思えます。

あなたの説明から、リクエストは次のようになっているようです:

App --> Web site --> Web service

ユーザーがサービスに登録する必要がある場合、ユーザーがアプリにログインすると、Webサービスで認証され、認証トークンが取得されます。日付が返される前に、Webサービスがユーザーを認証および承認することを確認してください。

App [Auth Token] --> Web site [Auth Token] --> Web service [Auth token]

次に、誰かがWebサービスエンドポイントに直接アクセスした場合、有効な認証トークンがないため、データは取得されません。

4
SilverlightFox

1つの大きな問題:

認証なしで誰でもあなたのデータへのアクセスを許可すること、特に機密データは巨大な禁止事項です!


このサーバーにアクセスする唯一の方法がアプリケーションを使用している場合は、最も簡単な方法は、アプリケーション固有のSSL証明書を使用することです。リクエストがその証明書を使用しない限り、何も起こりません。

これの唯一の欠点は、アプリケーションにしかアクセスできないことです。別の方法でやりたい場合は、他のいくつかのオプションを実行できます。

  • VPN。このVPN内にいる場合を除き、サーバーを表示できないため、サーバーにアクセスできません。

  • アクセス許可と制限付きのAPIキー(最も一般的な方法)

  • 状態とCookie(一般的な方法)、ユーザーによる保存、タイムアウト、安全な暗号化も可能(一般的な方法)

3
Robert Mennell