iOS-是否可以通过本地主机在应用程序之间进行通信?

iOS-是否可以通过本地主机在应用程序之间进行通信?,ios,networking,Ios,Networking,考虑这种假设情况: Bob和Eve的应用程序安装在同一部iPhone上。Bob的应用程序正在运行,并绑定到localhost:8080以侦听来自其自己的UIWebView的AJAX调用。Eve的应用程序在后台运行,并试图通过对localhost:8080进行AJAX调用来干扰Bob的应用程序 两个问题: 假设Eve的应用程序知道Bob的AJAX API,她的调用会成功吗?(即,iOS沙盒流量是否在本地主机上?) Eve的应用程序是否可以嗅探Bob的应用程序正在生成的流量 如果Bob的应用程序正在

考虑这种假设情况:

Bob和Eve的应用程序安装在同一部iPhone上。Bob的应用程序正在运行,并绑定到localhost:8080以侦听来自其自己的
UIWebView
的AJAX调用。Eve的应用程序在后台运行,并试图通过对localhost:8080进行AJAX调用来干扰Bob的应用程序

两个问题:

  • 假设Eve的应用程序知道Bob的AJAX API,她的调用会成功吗?(即,iOS沙盒流量是否在本地主机上?)

  • Eve的应用程序是否可以嗅探Bob的应用程序正在生成的流量

  • 如果Bob的应用程序正在运行,则Eve的应用程序可以连接到它
  • 有两种可能的方法可以实现这一点。考虑到Eve的应用程序在后台运行,Bob的应用程序在前台,Eve的应用程序在后台连接。或者,Bob的应用程序在后台运行,Eve的应用程序在前台连接到它

    默认情况下,iOS会在后台挂起应用程序。如果应用程序使用后台执行,并继续在后台运行,它可以像往常一样访问网络

    你可能想读苹果公司的《超越基础》

  • 嗅探流量需要根访问权限,除非Eve的应用程序是越狱应用程序,否则无法进行嗅探

  • 在文章的“BSD(包括Mac OS X)”一节中,它指出在BSD系统上,我们需要有访问BPF设备以捕获数据包的权限(读:嗅探网络流量)。只有root用户(或任何超级用户)可以访问BPF设备,或向任何其他用户授予访问这些设备的权限。

    这就是。。。一个很好的问题。好得吓人。哇。。那很有趣。我搜索了一下,没能立即找到答案。如果你发现了,把我想知道的答案贴出来。我会假设它是沙盒,因为如果不是的话,这似乎有点疏忽。试试看。得到答案的最好方法是把两个这样的应用程序放在一起,看看会发生什么。很好的答案。这证实了我的怀疑。越狱应用程序是我在这里最关心的,所以这是非常相关的信息。如果Bob对此感到担忧,那么他最好的选择是使用HTTPS等来保护流量。因为这会带来安全隐患(恶意应用程序连接到另一个应用程序的服务器,或者在后台欺骗另一个应用程序的服务器,以便受害者连接到后台恶意服务器),你知道苹果有没有解决过这个问题吗?我知道,例如,Win10应用程序(包括手机上的应用程序)默认使用沙盒联网;苹果添加了类似的东西吗?只有当应用程序在同一个应用程序组中时才有可能。Berkeley套接字是文件描述符,这些文件是沙盒。另见