iOS - Is it possible to communicate between apps via localhost?

后端 未结 1 376
清歌不尽
清歌不尽 2020-12-14 09:19

Consider this hypothetical situation:

Bob and Eve\'s apps are installed on the same iPhone. Bob\'s app is running and binds to localhost:8080 to listen for AJAX call

相关标签:
1条回答
  • 2020-12-14 09:44
    1. if Bob's app is running, yes Eve's app can connect to it.

    There are 2 possible ways to have this happen. Either Bob's app is in the foreground, and Eve's app connect to it in the background, given that Eve's app is running in background. Or, Bob's app is running in the background, and Eve's app connect to it in foreground.

    By default the iOS suspend apps in background. If the app make use of background execution, and continue to run in the background, it can access the network as usual.

    You may want to read "Beyond The Basics" in Apple's technical notes on Networking and Multitasking

    1. Sniffing traffic require root access, it cannot be done unless Eve's app is a jailbroken app.

    In the section "BSD (including Mac OS X)" of the article Wireshark CapturePrivileges, it state that on BSD systems we need to have permission to access BPF devices to capture packets (read: sniff network traffic). Only root (or any superuser) can access the BPF devices, or grant permission to any other user to access them.

    0 讨论(0)
提交回复
热议问题