【问题标题】:iOS 9 App Transport Security for multiple services多个服务的 iOS 9 应用程序传输安全性
【发布时间】:2016-05-16 02:01:46
【问题描述】:

我将 parse.comlayer.commy company url 用于条款/隐私政策以及其他框架在 cocoapods 中,例如 google places api。

我被卡住了,因为我想使用正确的Apple Transport Settings,而且我似乎无法弄清楚如何在info.plist 中包含我需要的所有内容。 我不希望它在提交时被应用商店拒绝

我已经对堆栈溢出进行了研究,人们要么通过它,要么给出一个域的示例。目前还不清楚我应该如何在 xml 中添加它。

【问题讨论】:

  • 最好找到解析的替代方案...
  • 有很多设置ATS的例子。分别寻址每个域。请记住,您只需为尚未更新的域添加到 ATS。
  • Linus G. 是的,我知道,当更多工具可用时,他们会进行迁移。还有@rmaddy,“对于尚未更新的域”是什么意思
  • @kareem 我的意思是并非所有域(例如 parse.com 等)都需要 ATS 的任何内容。您只需为不使用正确版本 HTTPS/TLS 的域设置 ATS。
  • @rmaddy 知道它是否使用正确的 HTTPS/TLS 的最佳方法是什么?

标签: ios ios9 app-transport-security


【解决方案1】:

如果您知道如何将一个域添加到例外字典中,那么您只需对所有其他域执行相同操作即可。这是一个例子:

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>parse.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>                
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>layer.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>my-company.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>

另外,NSAppTransportSecurity 键的完整规范可以在 here 找到。

【讨论】:

    【解决方案2】:

    不要担心被拒绝的事情

    根据this guys answer

    好消息是 Apple 接受了我的应用并设置了 NSAllowsArbitraryLoads 是。

    所以在你的情况下,最简单的方法是允许所有的http请求以这种方式,如果你的应用程序有内置的网络浏览器,这绝对是你的选择

    <key>NSAppTransportSecurity</key>
      <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
      </dict>
    

    如果您只想允许特定的 http 请求,那么您可以在 info.plist 中添加它

    <key>NSAppTransportSecurity</key>
    <dict>
      <key>NSExceptionDomains</key>
      <dict>
        <key>yourserver.com</key>
        <dict>
          <!--Include to allow subdomains-->
          <key>NSIncludesSubdomains</key>
          <true/>
          <!--Include to allow HTTP requests-->
          <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
          <true/>
          <!--Include to specify minimum TLS version-->
          <key>NSTemporaryExceptionMinimumTLSVersion</key>
          <string>TLSv1.1</string>
        </dict>
      </dict>
    </dict>
    

    上面的代码说允许yourserver.com 及其子域http 连接

    【讨论】:

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