iOS 9 … Are WebView(s) exempt from the App Transport Security Exceptions (ATS) rules that block insecure HTTP hosts?

后端 未结 4 1418
臣服心动
臣服心动 2020-12-14 17:06

In iOS 9, Apple is blocking insecure HTTP connections for apps, unless specific hosts are whitelisted.

http://ste.vn/2015/06/10/configuring-app-transport-security-io

相关标签:
4条回答
  • 2020-12-14 17:33

    I have inserted the following in my apps .plist per the Apple Guidance:

    <key>NSAppTransportSecurity</key>
    <dict>
         <!--Include to allow all connections - with and without SSL (DANGEROUS)-->
         <key>NSAllowsArbitraryLoads</key>
         <true/>
    </dict>
    

    and when I try to load my webView (from an HTTPS server no less), I get the following error and it doesn't load.

    NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9813)

    So I it looks like not only are they not exempt, they don't work even if you make the correct addition to the .plist.

    0 讨论(0)
  • 2020-12-14 17:34

    This question was originally about iOS 9; however, according to Apple's documentation:

    Starting in iOS 10.0 and later, the following subkeys are supported:

    • NSAllowsArbitraryLoadsInWebContent
    • ...

    Use NSAllowsArbitraryLoadsInWebContent so that you do not need to white list each page a WebView may load.

    Keep NSAllowsArbitraryLoads to maintain backward compatibility with iOS 9 and enable the new setting in your Xcode 8 project Info.plist here:

    0 讨论(0)
  • 2020-12-14 17:40

    SFSafariViewController can show HTTP without the NSAppTransportSecurity key.

    UIWebView and WKWebView require the NSAppTransportSecurity key mentioned above to display HTTP pages.

    0 讨论(0)
  • 2020-12-14 17:52

    If your app (a third-party web browser, for instance) needs to load arbitrary content, Apple provides a way to disable ATS altogether, but I suspect it’s wise for you to use this capability sparingly:

    <key>NSAppTransportSecurity</key>
        <dict>
            <!--Include to allow all connections (DANGER)-->
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
    
    0 讨论(0)
提交回复
热议问题