我正在尝试在UIWebView中加载HTTP链接.链接来自我的网站,因此它们是可靠的.我在互联网上搜索并找到了解决方案:如何将NSAppTransportSecurity添加到我的info.plist文件中?
在遵循该解决方案后,我的info.plist看起来像这样:
即使在进行更改后,我也无法在UIWebView中加载HTTP链接.我收到以下错误:
App Transport Security已阻止明文HTTP(http://)资源加载,因为它不安全
有什么我做错了吗?
更新:
在Ramshad在评论中提出更改后,它仍然无法正常工作.见下图:
我的iOS设备日志(在模拟器和真实设备上)充满了几十行以下错误垃圾邮件:
CFNetwork的内部错误(0xc01a:/BuildRoot/Library/Caches/com.apple.xbs/Sources/CFNetwork_Sim/CFNetwork-758.0.2/ProjectRuntime/CFNetworkInternal.h:478)
为什么我看到这些,我怎么摆脱它们?
在iOS 9中启用ATS后,我的许多客户无法满足前向保密要求.但是,它们可以满足https和TLS 1.2要求.因此,我希望放宽前向保密要求,同时保持https和TLS 1.2.
我想知道是否有人想出了一种方法来使用NSExceptionRequiresForwardSecrecy或NSThirdPartyExceptionRequiresForwardSecrecy来禁用所有域的前向保密.
我尝试使用*用于NSExceptionDomains或*.com但是当我使用它时问题链接不起作用.当我使用其domain.com时,问题链接将加载.我正在查看Apple Docs,但没有看到任何方法来实现我的目标.
是否可以通过将NSAppTransportSecurity/NSAllowsArbitraryLoads设置为true来完全禁用所有域的前向保密?
谢谢!
在 iOS 应用中,我遇到了应用传输安全性问题:
我在网上阅读了很多帖子,但由于某种原因,我在 Info.plist 中设置的内容似乎被忽略了。我尝试了几种可能性,这是最后一种:
<plist version="1.0">
<dict>
……..
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>mydomain.net</key>
<dict>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
……..
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
但是无论我在 Info.plist 中设置什么,我都会收到此消息:
2016-03-25 13:21:17.234 MyApp[3587:1285514] App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.
Run Code Online (Sandbox Code Playgroud)
我可能会错过什么?
info.plist ios app-transport-security nsapptransportsecurity
在iOS 9中,我可以向info.plist添加密钥以禁用App Transport Security.有两个键,NSExceptionAllowsInsecureHTTPLoads
并且NSThirdPartyExceptionAllowsInsecureHTTPLoads
,其被定义为:
一个可选的布尔值,当设置为YES时,允许不安全的HTTP加载.使用此密钥来描述您的应用程序对您可以控制其安全属性的域的预期网络行为.
和
NSExceptionAllowsInsecureHTTPLoads键的一个版本,用于配置与您无法控制的安全属性的域的连接.
他们指的是什么安全属性?为什么我的意图很重要?
在什么情况下我会使用其中一种而不是另一种?
由于我的域没有 SSL 证书 atm,我使用 NSExceptionDomains 允许域无论如何加载。
我在 Info.plist 中使用以下代码来允许域和它的子域
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>infever.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
但是,这次我想通过 2 个域,因为应用程序的某些部分来自不同的域。
我尝试添加另一个这样的键:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>infever.com</key>
<key>gentsgroup.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Run Code Online (Sandbox Code Playgroud)
但这没有用。这样做的正确方法是什么?
在早期的日子里,每当我想那里获取数据并不需要添加NSAppTransportSecurity
设置NSAllowsArbitraryLoads
关键YES
的info.plist
,但如果你现在要运行你的应用程序通过网络,那么它必须加入.
为什么需要它?它有用吗?它的用途是什么?
有人可以帮忙吗?