在启用了ATS(App Transport Security)的iOS 9中,没有任何例外,我无法通过http连接到服务器。我期待的是。
IE:
然而,在iOS 10中没有任何变化,我可以建立连接。
在这里看,我没有看到为什么会出现这种情况的任何更新: https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html
有什么想法吗?我想确保我仍然获得ATS保护。
答案 0 :(得分:2)
远程和本地连接的ATS的可用性 App Transport Security(ATS)仅适用于与公共主机名建立的连接。系统不对以下连接提供ATS保护:
- 互联网协议(IP)地址
- 不合格的主机名
- 使用.local顶级域名(TLD)的本地主机
要连接到非限定主机名或.local域,必须将NSAllowsLocalNetworking键的值设置为YES。
注意:虽然ATS未连接到本地主机,但Apple强烈建议对任何本地连接使用传输层安全性(TLS),并使用自签名证书来验证本地IP地址。 Apple Doc.
系统不为Internet protocol (IP) addresses
的连接提供ATS保护。因此,我们可以在plist文件中没有任何NSAllowsLocalNetworking
的情况下连接到服务器IP。