ATS App Transport Security:Webview内的HTTPurl

我们有一个在Webview中显示HTML内容的应用程序。 目前提供给Webview的内容来自非安全域。 从iOS10开始,它应该在安全领域提供服务,所以在迁移之前要清除一些疑问。

  1. 受保护的HTML页面(https)是否应具有来自受保护服务器的CSS和JS链接? 因为一些CSS和JS可能来自第三个服务器。

  2. 如果受保护的HTML页面(https)被加载到Webview中,并且有一些不安全的链接(http),当用户点击它时这些链接会加载到Webview中吗?

在此先感谢您的帮助。

我做了一个快速testing,看起来UIWebView为了正确显示页面而需要加载的引用资源必须遵守ATS规则,但是也要遵循Info.plist为您的项目指定的任何exception。 如果我试图在UIWebView链接到非https网站,它也会给我带来错误。

我认为你最好的select是为iOS 9用户有条件地使用SFSafariViewController 。 您可以继续将UIWebView用于不严格执行ATS的iOS 7和iOS 8设备。 这增加了一些额外的代码,但它应该是最小的。

此外,只是澄清苹果的执行应用程序运输安全性的变化。 他们宣布,2016年12月31日之后提交的应用需要使用App Transport Security。 这意味着影响不是基于用户的设备操作系统,而是基于提交的开发人员。 而且,只要你有理由,苹果仍然允许增加例外 。 我们还不知道苹果允许什么types的理由。 最后,苹果在他们的WWDC会议上表示,应用程序仍然可以包含对ATS要求的前向保密部分的例外,而没有单独的理由。 但是,直到我们到2017年1月1日,我们不知道这将如何工作。

编辑:看来苹果已经添加了一个新的exception,你可以使用它来允许UIWebviewWKWebview实例中的非ATS连接。 它是NSAllowsArbitraryLoadsInWebContent 。 这应该做你正在寻找的。 以下是对ATS的最新总结: 准备2017年的ATS。