【问题标题】:iOS 9: Application Transport Security plist configurationsiOS 9:应用程序传输安全 plist 配置
【发布时间】:2015-09-17 14:35:11
【问题描述】:

我目前正在开发一个同时使用 HTTPS 端点和 HTTP 端点的应用程序。现在我想通过在 plist 中创建 NSExceptionDomainsdictionary 来符合 iOS9 的应用程序传输安全性,但是我的应用程序命中的第 3 方端点的数量是动态的并且总是在增长,因此这样做将是一项相当乏味的任务。

因此,虽然我可以将 NSAllowsArbitraryLoads 设置为 YES,但我宁愿默认关闭 ATS,除了我的少数安全 HTTPS 端点。是否有可能做到这一点?我看到一篇关于有人以这种方式配置 plist 的博客文章。

但是我找不到任何信息来验证这是一个有效的解决方案,我也不知道如何知道 HTTPS 请求是否正在使用 ATS。有谁知道这是否可行或如何知道这是否有效?

编辑

值得一提的是,当前应用文档中的标签是不正确的。

NSExceptionAllowInsecureHTTPLoads NSExceptionRequiresForwardSecrecy NSExceptionMinimumTLSVersion NSThirdPartyExceptionAllowsInsecureHTTPLoads NSThirdPartyExceptionMinimumTLSVersion NSThirdPartyExceptionRequiresForwardSecrecy

其实是

NSTemporaryExceptionAllowsInsecureHTTPLoads NSTemporaryExceptionRequiresForwardSecrecy NSTemporaryExceptionMinimumTLSVersion NSTemporaryThirdPartyExceptionAllowsInsecureHTTPLoads NSTemporaryThirdPartyExceptionMinimumTLSVersion NSTemporaryThirdPartyExceptionRequiresForwardSecrecy

【问题讨论】:

    标签: ios security plist nsurl ios9


    【解决方案1】:

    在做了更多研究之后,我能够回答我自己的问题。所以基本上你是说通过设置NSAllowsArbitraryLoads = YES,一切都需要默认不使用ATS。

    但是然后在您的异常字典(NSExceptionDomain)中,您正在指定要采取不同行动的端点。这意味着您可以将 HTTPS 端点放在此列表中,并通过将 NSTemporaryExceptionAllowsInsecureHTTPSLoads 设置为 NO 来指定它使用 ATS。我可以通过放置一个不安全的端点itunes.apple.com 并尝试访问它来验证这一点。当我将NSTemporaryExceptionAllowsInsecureHTTPSLoads 设置为NO 时,它失败并抱怨它不安全。

    这对大多数人来说可能是显而易见的,但我希望这有帮助。

    【讨论】:

      猜你喜欢
      • 2016-06-07
      • 2016-01-17
      • 2016-08-27
      • 2017-03-09
      • 2016-01-02
      • 1970-01-01
      • 2016-09-19
      • 2015-12-19
      • 2016-05-16
      相关资源
      最近更新 更多