1

サードパーティと一緒にiPhoneアプリを開発しています。アプリは、HTTPを介してASP.NETWebAPIからデータを要求します。ほとんどの場合、これらのリクエストは読み取り専用で副作用はありませんが、いくつかのリクエストにより、ユーザーはデータを変更したり、メールを送信したりできます。アプリを使用していないユーザーからAPIが呼び出されないようにするにはどうすればよいですか?単純なパスワードを含めると、アプリにアクセスできる人なら誰でも簡単に盗聴できるため、効果がないようです。

このような問題から保護するための標準的なメカニズムまたは手法はありますか?

編集:おそらく、要求する単純なパスワードを追加してから、APIに強制的なHTTPSを使用するだけで十分ですか?また、HTTPSを使用している場合、パスワードを追加してもセキュリティは向上しませんか?

4

2 に答える 2

1

簡単な解決策の 1 つは、アカウントの作成時にユーザーごとにランダムな API キーを生成し、接続時にアプリのデータに保存することです。

次に、各リクエストを API キーで署名する必要があります。

これにより、アプリに接続されたデバイスからリクエストが送信されたことを確認でき、リクエストをログに記録して、どのユーザーがどのエンドポイントを呼び出したかを知ることができます。

もちろん、ユーザーが Wi-Fi ネットワークを使用している場合、https を使用していない場合、ユーザーは中間者の犠牲者になり、API キーが侵害される可能性があります。

各発信リクエストで API キーを「可視」にしたくない場合は、ユーザー ID と、リクエスト パラメータと API キーを連結した署名を md5 にハッシュして送信できます。REST API は、要求を許可する前に、同じことを行い、違いがないか署名をチェックする必要があります。

于 2012-11-30T09:40:04.997 に答える
0

ヘビーウェイトのxmlソリューションを探す場合は、独自のCAを使用して小さな内部PKIをセットアップできます。そして、各ユーザーに証明書(電話に保存されている)を発行すると、 XAdESを調べることができます。そして、EvelopedまたはEnvelopedタイプの署名の検証ロジックを作成します。解析する前に署名を削除しながらフィルターで、または指定された方法でこれを手動で実行します。さらに、もちろんトランスポート保護のためのSSL/TLS。

于 2012-12-03T13:23:31.820 に答える