2015-11-03 76 views
0

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

编辑:

为了使这一点更为清晰:它不必在运行时。静态检查很好。我更多地思考以下几点:是否有一个每个想要使用网络的人都必须链接的库?

+0

只有在访问.m文件时才能检查它。没有其他选择。 – Raxit

回答

1

是的,有一种方法可以实现你想要的。检查mitmproxy了。安装在Mac上的窗户或任何mitmproxy,在设备上安装应用程式后,终端上启动mitmproxy,让你的电脑的IP代理的设备上,如在mitmproxy文档描述安装HTTPS证书,应用程序启动你和享受! mitmproxy可以显示来自您的应用的所有传出连接。祝你好运!

编辑

从iOS的9起,您可以在App Transport Security Settings关键在应用Info.plist设置可信主机。更多关于它的信息你可以找到here。希望这有帮助。

+1

这只能验证框架在测试时不会进行网络调用。这不会验证该框架不会进行网络调用。 – alexkent

0

我不确定是否有可能确保应用程序永远不会进行网络通话。

由于法赫里阿济莫夫建议,你可以测试第三方框架是否通过代理漏斗从测试设备的所有流量,使网络调用。您可以使用iOS模拟器在本地在您的Mac上执行此操作,并且Little Snitch.但这不能确保框架永远不会进行网络呼叫。

一个变通,以确保没有您的应用程序不执行网络可以使用NSURLProtocol拦截任何网络调用和返回错误。你可以看看OHHTTPStubs framework的灵感。但是,再次,这是有限的,因为它只会捕获NSURLConnection/NSURLSession网络调用,它不会拦截框架可能产生的低级网络操作。