18

次の仮説的な状況を考えてみましょう。

Bob と Eve のアプリは同じ iPhone にインストールされています。Bob のアプリは実行中で、localhost:8080 にバインドして、独自の からの AJAX 呼び出しをリッスンしますUIWebView。Eve のアプリはバックグラウンドで実行され、localhost:8080 への AJAX 呼び出しを行うことで、Bob のアプリを妨害しようとします。

2 つの質問:

  1. Eve のアプリが Bob の AJAX API を認識していると仮定すると、彼女の呼び出しは成功するでしょうか? (つまり、localhost で iOS サンドボックス トラフィックを実行しますか?)

  2. Eve のアプリが、Bob のアプリが生成しているトラフィックを傍受することは可能ですか?

4

1 に答える 1

5
  1. Bob のアプリが実行されている場合、はい、Eve のアプリはそれに接続できます。

これを実現するには 2 つの方法があります。Eve のアプリがバックグラウンドで実行されている場合、Bob のアプリはフォアグラウンドにあり、Eve のアプリはバックグラウンドで接続します。または、Bob のアプリがバックグラウンドで実行されており、Eve のアプリがフォアグラウンドで接続しています。

デフォルトでは、iOS はアプリをバックグラウンドで中断します。アプリがバックグラウンド実行を利用し、バックグラウンドで実行し続ける場合、アプリは通常どおりネットワークにアクセスできます。

ネットワーキングとマルチタスキングに関するApple のテクニカル ノートの「Beyond The Basics」を読むことをお勧めします。

  1. トラフィックのスニッフィングにはルート アクセスが必要です。Eve のアプリがジェイルブレイクされたアプリでない限り、これを行うことはできません。

記事Wireshark CapturePrivilegesの「BSD (Mac OS X を含む)」セクションでは、BSD システムではパケットをキャプチャするために BPF デバイスにアクセスする権限が必要であると述べています (読み取り: ネットワーク トラフィックを盗聴します)。root (または任意のスーパーユーザー) のみが BPF デバイスにアクセスしたり、他のユーザーにアクセス許可を付与したりできます。

于 2012-12-06T03:58:47.030 に答える