ios10中的ATS和http

ios10中的ATS和http,ios,ios9,ios10,app-transport-security,Ios,Ios9,Ios10,App Transport Security,在启用了ATS(应用程序传输安全)的iOS 9中,没有任何例外,我无法通过http连接到服务器。这是我所期望的 即: 但是,在iOS 10中没有任何更改的情况下,我可以建立这种连接 看这里,我没有看到任何关于为什么会这样的更新: 有什么想法吗?我想确保我仍然得到ATS保护 远程和本地连接的ATS可用性 应用程序传输安全(ATS)仅适用于与公共主机名的连接。系统不为以下连接提供ATS保护: 互联网协议(IP)地址 非限定主机名 使用.Local顶级域(TLD)的本地主机 要连接到非限定主机

在启用了ATS(应用程序传输安全)的iOS 9中,没有任何例外,我无法通过http连接到服务器。这是我所期望的

即:

但是,在iOS 10中没有任何更改的情况下,我可以建立这种连接

看这里,我没有看到任何关于为什么会这样的更新:

有什么想法吗?我想确保我仍然得到ATS保护

远程和本地连接的ATS可用性 应用程序传输安全(ATS)仅适用于与公共主机名的连接。系统不为以下连接提供ATS保护:

  • 互联网协议(IP)地址
  • 非限定主机名
  • 使用.Local顶级域(TLD)的本地主机
要连接到非限定主机名或.local域,必须将NSAllowsLocalNetworking键的值设置为“是”

注意:尽管ATS不强制连接到本地主机,但Apple强烈建议对任何本地连接使用传输层安全(TLS),同时使用自签名证书验证本地IP地址


系统不对具有
互联网协议(IP)地址的连接提供ATS保护。因此,我们可以连接到服务器IP,而无需plist文件中的任何
NSAllowsLocalNetworking

应用程序构建所依据的基本SDK是什么?您是使用Xcode 7还是8构建应用程序?基本SDK是9.3,使用Xcode 8构建。同样重要的是,9.3设备上的这个版本不允许http(如预期的那样),但在iOS 10上会允许。您如何建立连接?在UIWebView中,NSURLConnection?我看看是否可以复制。我正在使用AFN网络。所以我猜NSURLConnection是隐藏的。我没有使用AFNetworking,只是直接的NSURLConnections,我的行为在iOS 10和iOS 9中是一样的。我认为唯一可能的原因(我没有机会确认)是因为您使用IP地址而不是域名连接到服务器。也许iOS 10允许基于IP的连接绕过ATS限制?或者可能是因为它是本地IP?