一个 App 可以拦截另一个 App 的网络流量吗?

Posted

技术标签:

【中文标题】一个 App 可以拦截另一个 App 的网络流量吗?【英文标题】:Can an App intercept network traffic of another app? 【发布时间】:2018-09-19 00:42:58 【问题描述】:

我的 android 应用程序向服务器发送带有一些访问参数的 GET 请求。服务器响应一个 json 文件。 有没有办法让我在它交付的那一刻得到那个 json 文件?

问这个问题是因为有人可以嗅探我的应用程序的网络流量,我想消除它。

【问题讨论】:

【参考方案1】:

不,您不能嗅探其他应用程序的网络调用,否则将被视为操作系统中的安全漏洞,这在正常访问下几乎是不可能的

【讨论】:

【参考方案2】:

正如@Pavneet_Singh 的回答中所述,应用程序无法读取其他应用程序生成的流量,除非它是 *** 应用程序,它可以读取通过的所有流量。用户需要明确接受这一点。有一些网络分析器应用程序的例子就是这样运行的。

问这个问题是因为有人嗅探我的应用程序,我不知道有没有办法消除它。

听起来您担心有人在分析您应用的网络流量。任何人都可以使用代理服务器来分析通过它的网络流量,例如使用WireShark 或Fiddler。如果你不想这样,你可以使用 HTTPS 来加密你的网络流量,certificate pinning 只在服务器经过验证后才发出请求。没有证书固定的 HTTPS 不足以阻止其他人读取您的应用程序发送的流量。

【讨论】:

感谢@Bertware!这就是我想听到的。 证书固定旨在缓解最不可信的 CA 问题,几乎可以在每个应用程序中实施。但是,说“没有证书固定的 HTTPS 不足以防止其他人读取您的应用程序发送的流量”这种说法太强了。 @JamesKPolk 我说的是完全控制网络和设备的第三个人,这意味着他可以安装额外的证书等。这样即使是 HTTPS 也可以被规避(如果我'我错了)。例如,这是 Fiddler 中的默认功能。对于“正常”使用,我认为 HTTPS 足够强大。 是的,当您无法信任您所在的平台时,固定有助于缓解问题在某种程度上,尤其有助于解决有人安装的情况。例如Fiddler 证书或其他代理证书。我想我只是在吹毛求疵,正如我所说,固定几乎总是一个好主意,而且并不是特别难。

以上是关于一个 App 可以拦截另一个 App 的网络流量吗?的主要内容,如果未能解决你的问题,请参考以下文章

ios - 如何获取app上的数据

安卓开发点击按钮跳转到另一个app

android统计每个APP的3g流量,如何?

APP性能测试-流量

如何禁止app store,禁止苹果商店自动更新占用大量带宽?

安卓P将默认阻止HTTP流量,APP尽快部署HTTPS加密