从 iOS 9 及更高版本开始,出于安全目的,Apple 强制用户向特定主机发出 HTTPS 请求,或者如果必须发出 HTTP 请求,Apple 希望用户在 plist 中提供相同的信息。
类似于:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>api.themoviedb.org</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
但是,如果我从 plist 中删除此代码,并在设备 (iOS 11) 上运行我的代码,它仍然正确加载 HTTP 请求,而不会发出任何警告。
问题是,如果 Apple 强制使用 HTTPS,为什么我能够在没有任何警告的情况下进行 HTTP 调用?
最佳答案
根据@KrauseFX 最近的推特对话,似乎没有 https://twitter.com/KrauseFx/status/942741438890233856
我想分享
关于ios - 加强 iOS 应用程序传输安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48022557/