【发布时间】:2017-12-29 12:20:53
【问题描述】:
从 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 调用?
【问题讨论】: