我们如何在一个应用程序中使用HTTP和HTTPS两种ATS(App Transport Security)?

时间:2015-09-25 03:05:06

标签: ios objective-c swift ios9 app-transport-security

  Apple宣布推出适用于iOS 9和OSX 10.11 El Capitan的“App Transport Security”。 iOS 9的“What’s New in iOS”指南解释了:

     

App Transport Security(ATS)允许应用向其添加声明   Info.plist文件,指定需要安全的域   通讯。 ATS防止意外泄露,提供安全保障   默认行为,很容易采用。你应该尽快采用ATS   尽可能,无论您是创建新的应用程序还是   更新现有的。

如果我们要删除或禁用ATS意味着我们只想使用HTTP,那么我们在.plist文件中进行输入,如:

<key>NSAppTransportSecurity</key>
<dict>
  <!--Include to allow all connections (DANGER)-->
  <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>

如果我们的域名是HTTPS,我们正在.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>

问题是:

如果我的应用正在处理像HTTP这样的网络服务。我想使用HTTPS域,如谷歌地图或Facebook登录等。或者像一个网络服务的任何东西用于HTTPS域。

然后我们如何合并.plist文件中的内容?

2 个答案:

答案 0 :(得分:5)

如果您的应用(例如第三方网络浏览器)需要加载任意内容,Apple会提供一种完全禁用ATS的方法,但我怀疑您使用此功能是明智之举微:

完全停用ATS。只需在 Info.plist 文件中包含以下内容,然后在一个应用程序中使用HTTPHTTPS

<key>NSAppTransportSecurity</key>
<dict>
      <!--Include to allow all connections (DANGER)-->
      <key>NSAllowsArbitraryLoads</key>
      <true/>
</dict>

希望这有帮助!

答案 1 :(得分:0)

如果您的应用(例如第三方网络浏览器)需要加载任意内容。然后将其添加到plist中。 Enter Into Plist