【问题标题】:iOS 3rd Party Framework assure no network connectionsiOS 3rd Party Framework 确保没有网络连接
【发布时间】:2015-11-03 12:16:28
【问题描述】:

在我们目前正在进行的项目中,我们需要依赖预编译的 3rd 方框架。 有什么方法可以确保它无法打开网络连接并发送机密数据?

编辑:

为了更清楚一点:它不必在运行时。静态检查没问题。我更多地在想一些事情:是否有一个图书馆,每个想要使用网络的人都必须链接到?

【问题讨论】:

  • 只有当您可以访问.m 文件时才能检查它。没有其他选择。

标签: ios objective-c frameworks


【解决方案1】:

是的,有一种方法可以实现您想要的。检查mitmproxy。在您的 Mac 窗口或其他设备上安装 mitmproxy,在设备上安装您的应用程序,在终端上启动 mitmproxy,使您的计算机 IP 成为设备上的代理,按照 mitmproxy 文档中的说明安装 https 证书,启动您的应用程序, 享受! mitmproxy 可以显示您的应用程序的所有传出连接。祝你好运!

编辑

从iOS 9开始,您可以在应用程序Info.plist中的App Transport Security Settings键下设置信任主机。有关它的更多信息,您可以找到here。希望这对您有所帮助。

【讨论】:

  • 这只能验证框架在您测试时没有进行网络调用。这不会验证框架永远不会进行网络调用。
【解决方案2】:

我不确定是否可以确保应用从不进行网络调用。

正如 Fahri Azimov 建议的那样,您可以通过代理汇集来自测试设备的所有流量来测试 3rd 方框架是否进行网络调用。您可以在 Mac 上使用 iOS 模拟器和 Little Snitch. 在本地执行此操作,但这不能确保框架永远不会进行网络调用。

确保您的应用不执行网络的解决方法是使用NSURLProtocol 拦截任何网络调用并返回错误。您可以查看OHHTTPStubs framework 以获得灵感。但是,同样,这是有限的,因为它只会捕获 NSURLConnection / NSURLSession 网络调用,它不会拦截框架可以进行的低级网络操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多