gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 08:12:14 24 4
gpt4 key购买 nike

考虑这个假设情况:

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

两个问题:

  1. 假设 Eve 的应用知道 Bob 的 AJAX API,她的调用会成功吗? (即 iOS 沙盒是否在本地主机上传输?)

  2. Eve 的应用是否可以嗅探 Bob 的应用产生的流量?

最佳答案

  1. 如果 Bob 的应用程序正在运行,是的,Eve 的应用程序可以连接到它。

有两种可能的方法可以实现这一点。 Bob 的应用程序在前台,Eve 的应用程序在后台连接到它,假设 Eve 的应用程序在后台运行。或者,Bob 的应用程序在后台运行,而 Eve 的应用程序在前台连接到它。

默认情况下,iOS 会在后台暂停应用程序。如果应用程序使用了后台执行,并在后台继续运行,它可以正常访问网络。

您可能想阅读 Apple 的 technical notes on Networking and Multitasking 中的“Beyond The Basics”

  1. 嗅探流量需要 root 访问权限,除非 Eve 的应用是越狱应用,否则无法完成。

在文章的“BSD(包括 Mac OS X)”部分 Wireshark CapturePrivileges ,它指出在 BSD 系统上我们需要有访问 BPF 设备的权限来捕获数据包(阅读:嗅探网络流量)。只有 root(或任何 super 用户)可以访问 BPF 设备,或授予任何其他用户访问它们的权限。

关于iOS - 是否可以通过本地主机在应用程序之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13734248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com