ATS App Transport Security:Web 视图中的 HTTP url
ATS App Transport Security: HTTP url inside Webview
我们有一个在 Webview 中显示 HTML 内容的应用程序。当前提供给 Webview 的内容来自非安全域。从 iOS10 开始,它应该从安全域提供服务,因此在迁移之前要消除一些疑虑。
安全 HTML 页面 (https) 是否也应该有来自安全服务器的 CSS 和 JS 链接?由于某些 CSS 和 JS 可能来自第三台服务器。
如果安全的 HTML 页面 (https) 加载到 Webview 中并且有一些不安全的链接 (http),当用户点击这些链接时,这些链接会加载到 Webview 中吗?
在此先感谢您的帮助。
我做了一个快速测试,似乎 UIWebView
需要加载以正确显示页面的任何引用资源都必须遵守 ATS 规则,但也要遵循您指定的任何例外情况在您的项目的 Info.plist
中。如果我试图跟随 link 到 UIWebView
中的 non-https 站点,它也会给我错误。
我认为您最好的选择是有条件地为 iOS 9 个用户使用 SFSafariViewController
。您可以继续对 iOS 7 和 iOS 8 设备使用 UIWebView
,它们不严格执行 ATS。这强加了一些额外的代码,但它应该是最小的。
另外,我只是澄清了 Apple 在应用程序传输安全性方面的变化。他们宣布在 2016 年 12 月 31 日 之后 提交的应用程序需要应用程序传输安全。这意味着影响不是基于用户的设备 OS,而是提交的开发人员。此外,只要您有正当理由,Apple 仍允许添加例外情况。我们还不知道 Apple 会允许什么样的理由。最后,Apple 在他们的 WWDC session 中表示,应用程序仍然可以在没有单独理由的情况下包含 ATS 要求的前向保密部分的例外情况。不过,在 2017 年 1 月 1 日之前,我们无法确定这将如何运作。
编辑: Apple 似乎添加了一个新的例外,您可以使用它来允许 UIWebview
和 WKWebview
实例中的 non-ATS 连接。是NSAllowsArbitraryLoadsInWebContent
。这应该完全符合您的要求。以下是 ATS 最新动态的精彩总结:preparing for ATS in 2017.
我们有一个在 Webview 中显示 HTML 内容的应用程序。当前提供给 Webview 的内容来自非安全域。从 iOS10 开始,它应该从安全域提供服务,因此在迁移之前要消除一些疑虑。
安全 HTML 页面 (https) 是否也应该有来自安全服务器的 CSS 和 JS 链接?由于某些 CSS 和 JS 可能来自第三台服务器。
如果安全的 HTML 页面 (https) 加载到 Webview 中并且有一些不安全的链接 (http),当用户点击这些链接时,这些链接会加载到 Webview 中吗?
在此先感谢您的帮助。
我做了一个快速测试,似乎 UIWebView
需要加载以正确显示页面的任何引用资源都必须遵守 ATS 规则,但也要遵循您指定的任何例外情况在您的项目的 Info.plist
中。如果我试图跟随 link 到 UIWebView
中的 non-https 站点,它也会给我错误。
我认为您最好的选择是有条件地为 iOS 9 个用户使用 SFSafariViewController
。您可以继续对 iOS 7 和 iOS 8 设备使用 UIWebView
,它们不严格执行 ATS。这强加了一些额外的代码,但它应该是最小的。
另外,我只是澄清了 Apple 在应用程序传输安全性方面的变化。他们宣布在 2016 年 12 月 31 日 之后 提交的应用程序需要应用程序传输安全。这意味着影响不是基于用户的设备 OS,而是提交的开发人员。此外,只要您有正当理由,Apple 仍允许添加例外情况。我们还不知道 Apple 会允许什么样的理由。最后,Apple 在他们的 WWDC session 中表示,应用程序仍然可以在没有单独理由的情况下包含 ATS 要求的前向保密部分的例外情况。不过,在 2017 年 1 月 1 日之前,我们无法确定这将如何运作。
编辑: Apple 似乎添加了一个新的例外,您可以使用它来允许 UIWebview
和 WKWebview
实例中的 non-ATS 连接。是NSAllowsArbitraryLoadsInWebContent
。这应该完全符合您的要求。以下是 ATS 最新动态的精彩总结:preparing for ATS in 2017.