【问题标题】:transport security being required come 2017, will a link in an app that opens a non-https site in safari be acceptable?2017 年需要传输安全性,在 Safari 中打开非 https 站点的应用程序中的链接是否可以接受?
【发布时间】:2016-11-25 18:51:29
【问题描述】:

当 ATS 于 2017 年 1 月正式执行(无一例外)时,我能否将非 https 网站链接留在允许 safari 而非浏览器内应用程序打开的应用程序中?还是这种做法也不能接受?

一旦发生这种变化,是否有任何方法可以保持对非 https 站点的引用?还是这种做法 DOA?

【问题讨论】:

  • 只有 Apple 可以回答这个问题,但他们已经声明他们将允许在合理的情况下对 ATS 进行例外处理。在我看来,它们必须是合理的,因为有大量的网站永远不会迁移到 HTTPS。我的一个应用程序支持永远不支持 HTTPS 的嵌入式设备,即使他们支持,用户也不会麻烦安装证书
  • 你想知道 Xcode 8 中是否自动启用了 ATS 吗?
  • ATS 在针对 iOS9 SDK 或更高版本编译的任何应用程序中自动启用,因此 Xcode 7.3 及更高版本
  • 感谢您的快速回复。尝试在这里覆盖我的基础,如果我能够在 safari 中加载非 https 站点,那么 ATS 应该不会在 1 月份成为问题吗?
  • 我不认为 ATS 适用于 Safari。仅限您在应用内使用 HTTP

标签: ios http https ios10 app-transport-security


【解决方案1】:

应用传输安全仅影响应用内的服务器调用。如果你在 Safari 中加载 URL,你会没事的。事实上,here 对于尝试在 UIWebView 中加载页面的开发人员来说是一个很好的教程,但如果由于 ATS 而失败,他们会改为在 Safari 中加载它。

另外一个注意事项是,您应该考虑使用SFSafariViewController 在您的应用程序中打开 URL,但具有在 Safari 中打开的所有好处。 SFSafariViewController 允许任意加载(意味着它不强制执行 ATS),但它允许您将用户保留在您的应用程序中。如果您的目标是 iOS 9 及更高版本,这当然值得考虑。

另外,您的问题有一点不正确的说法,即从 2017 年开始 ATS 将更加严格,但仍然允许有例外情况。某些媒体流不需要 ATS(因为视频之类的加密开销),您的应用程序仍然可以向 Apple 请求例外,但 Apple 会认为什么是例外的有效理由还有待观察。此外,Apple 仍将允许应用程序为 ATS 的前向保密要求设置例外。所以它并不像你的问题所说的那么简单。

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

【讨论】:

  • 啊,这很有趣。您是否有更多关于 sfsafariviewcontroller 和没有 https 签名的 url 的信息?我希望有一个应用内浏览器,它只加载一个站点(即预设),但不一定是“安全”站点。
  • 无需担心 SFSafariViewController 中的安全或非安全浏览。只需给它一个 URL,就像他们在 Safari 应用程序中浏览一样。这是一个教程:captechconsulting.com/blogs/…
猜你喜欢
  • 2019-03-07
  • 2011-10-30
  • 2021-07-08
  • 1970-01-01
  • 1970-01-01
  • 2014-04-23
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
相关资源
最近更新 更多