2

次の問題があります: iPhone アプリと Web サーバー (SSL、Https) の間で安全なログインを作成する方法を理解しました。私の質問は、セッション トークンを作成した後です。ハッカーがそれを傍受した場合、後続の POST 要求で同じユーザーからデータを受け取ることをどのように確認しますか?

リクエストが正しく行われるたびにセッショントークンを送信する必要があるため、これを尋ねますか? (ユーザーを識別できるようにするため)。

複数のことを防ぎたい:

  • 誰かがユーザーのトークンを盗聴し、彼の代わりにデータを送信するセッション ハイジャック (ハイスコアなど)
  • 1.000.000.000 のハイスコア (スコアの可能性はあるが、簡単には達成できない) のように、通常はアプリから送信されないデータを使用したデータ インジェクション。

私は見てきました:

  • UDID
  • ユーザー エージェント (私のアプリのアプリ名からのものでない場合、それは良くありません。ハッカーは実際に、私がこのチェックを行うか、何らかの方法で PHP ファイルをダウンロードすると推測する必要がありますか?)
  • アプリはAppStoreからのものです。要求が Apple によって承認されていないアプリからのものである場合、それは問題です。これをテストできるかどうかは実際にはわかりません。これが機能する場合、ハッカーは実際に AppStore を送信してダウンロードし、データベースに欠陥のあるデータを挿入する必要があります。誰も時間がないことを願っています.
  • MAC アドレス。Appleが許可しているかどうかはわかりません。有効なユーザーが IP を変更する可能性があるため、IP は機能しません。

私が見た Cookie は簡単に追跡でき、その中にどのようなデータが含まれているかを確認できます。

たぶん、ここで正しい質問をしていないので、受信したデータが正しいユーザーと正しいアプリケーションからのものであることを実際に確認するにはどうすればよいでしょうか?

4

1 に答える 1

1

POST リクエストに SSL を使用する目的は、転送中の第三者による傍受を防ぐことです。ハッカーがアクセスできる場合は、トークンがクライアント (ルート化されたデバイス) またはサーバー (安全でないアプリケーションのログ記録/デバッグ) で漏えいしたか、SSL を破ったことを意味します。(ありそうもない)

デバイスの UDID を取得したり (Apple はこれを好まない)、ソース IP と比較したりすることで高度なチェックを実行できますが、疑わしいセキュリティの改善には多くの労力が必要になります。

機密情報がすべて SSL にあることを確認するだけで問題ありません。

于 2012-10-11T14:43:35.330 に答える