我的最后一个项目是开发一个允许/不允许应用程序通过特定端口进行数据传输的iPhone应用程序。例如我想允许appA通过端口80从我的应用程序传输数据。
有可能制作这样的应用程序吗?如果可能的话,我应该学习哪些库或什么。
感谢
不,除非您想编写自己的web浏览器,否则这是不可能的。
苹果不允许在编写防火墙应用程序所需的级别上与系统进行交互。iOS中的所有应用程序都是沙盒,出于安全和隐私考虑,与操作系统和其他应用程序的交互有限。
如果你想为越狱的iOS设备构建它,那么这可能是可能的,但使用官方SDK是没有办法做到的。
你可以编写自己的网络浏览器,允许访问或不允许访问某些网站。如果你想让它在全系统范围内用于呼出,你可以使用一个可以用你的应用程序控制的代理,但如果有人在settings.app中删除了代理服务器,应用程序就会被绕过。
2021年的未来答案:
苹果表示他们本身不需要防火墙:
因为iOS通过限制监听端口和删除不必要的网络实用程序(如telnet、shell或web服务器)来减少攻击面,所以iOS设备上不需要额外的防火墙软件
然而,苹果在iOS 8.0中增加了对网络扩展的支持,你可以使用它来创建内容过滤器(如果防火墙不再是一个问题,那就是你下一个关心的问题):
使用NetworkExtension框架,您可以自定义和扩展iOS和macOS的核心网络功能。具体来说,您可以:
- 更改系统的Wi-Fi配置
- 将您的应用程序与热点网络子系统集成(热点助手)
- 使用内置VPN协议(个人VPN)或自定义VPN协议创建和管理VPN配置
- 实现设备上的内容筛选器
- 使用内置的DNS协议或设备上的自定义DNS代理创建和管理系统范围的DNS配置
iphone有一个防火墙,名为firewall iP 2.0。因此,只要你知道如何编码,这是可能的。此外,这需要你JB你的iphone。