【问题标题】:No solution for Transport Security?运输安全没有解决方案?
【发布时间】:2015-10-08 09:19:00
【问题描述】:

我已经尝试了here 的所有方法来解决以下问题:“Transport Security 已阻止明文 HTTP (http://) 资源加载,因为它不安全。可以通过应用程序的 Info.xml 配置临时异常。 plist 文件。”

但是,如果我尝试将其添加到我的 plist 文件中:

<key>NSAppTransportSecurity</key>
<dict>
  <key>NSExceptionDomains</key>
  <dict>
    <key>www.myserver.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>

我收到一个错误:“不支持的 URL”,在这种情况下,我的链接如下所示:

let url:NSURL = NSURL(string: "www.myserver.com/jsonsignup.php")

但如果我会使用:

let url:NSURL = NSURL(string: "http://www.myserver.com/jsonsignup.php")

我会得到与上述相同的传输安全错误。

有什么帮助吗?

【问题讨论】:

  • 尝试删除“www”。来自 plist 文件中的服务器密钥。
  • 如果请求,我的链接应该是什么样子?
  • 和现在一模一样。
  • 去掉'Temporary',现在的key是NSExceptionAllowsInsecureHTTPLoads NSExceptionMinimumTLSVersion

标签: objective-c swift ios9 xcode7 transport-security


【解决方案1】:

我有同样的问题。我尝试将它添加到 info.plist 但它对我也不起作用。所以我尝试了这个,它成功了。

在“项目导航器”中单击您的项目名称,然后单击信息。并在那里添加它。请参阅突出显示。

在我尝试从支持文件下的项目导航器中选择 plist 之前,由于某种原因它不起作用。以上应该对你有用。

注意:这将允许所有连接。

【讨论】:

  • 这不是解决方案,这可以被视为一种 hack,您启用了任何类型的 http 加载,将您的用户置于风险之中
  • @JulianKról 答案已经警告读者这将允许所有连接。答案的主要焦点是在 xCode 中显示编辑 plist 的正确位置。
  • 我知道这会起作用,但它不应该被视为一种解决方案,因为它会禁用 iOS 9 中提供的额外安全优势
  • 正确的做法是添加可以访问的域列表;看到这篇博文soortapp.com/ios-9-nsapptransportsecurity-tutorial
【解决方案2】:

你在使用http://request 吗?然后在您的.plist 文件中添加以下代码。

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

我希望它对你有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-20
    • 1970-01-01
    • 2011-02-28
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    相关资源
    最近更新 更多