ATS App Transport Security:Webview中的HTTP URL

时间:2016-08-05 08:31:31

标签: ios objective-c webview app-transport-security

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

  1. 安全的HTML页面(https)是否也应该有来自安全服务器的CSS和JS链接?因为一些CSS和JS可能来自第三台服务器。

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

  3. 提前感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

我做了一个快速测试,似乎UIWebView需要加载以正确显示页面的任何引用资源必须遵守ATS规则,但也要遵循您在您的项目Info.plist。如果我尝试在UIWebView中关注指向非https网站的链接,那么它也会给我带来错误。

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

此外,只是澄清了苹果公司围绕App Transport Security实施的变化。他们宣布,2016年12月31日之后提交的应用需要使用App Transport Security 。这意味着影响不是基于用户的设备操作系统,而是基于提交的开发人员。此外,只要您有理由,Apple 仍然允许添加例外。我们还不知道Apple会允许什么类型的理由。最后,Apple在其WWDC会议上表示,应用程序仍然可以包含ATS要求的前向保密部分的例外,而无需单独的理由。然而,在我们到达1/1的2017年之前,我们不确定这是如何工作的。

编辑:Apple似乎添加了一个新例外,您可以使用它来允许UIWebviewWKWebview个实例中的非ATS连接。它是NSAllowsArbitraryLoadsInWebContent。这应该完全符合您的要求。以下是ATS的最新摘要:preparing for ATS in 2017.

相关问题