Mi trovo nei guai a causa della nuova opportunità di sicurezza offerta da iOS9 di Apple per limitare le richieste ssl a qualsiasi tipo di server.iOS9 GoogleAnalytics e NSAppTransportSecurity
Vai alla tabella: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33
In realtà, voglio fare uso di default e non consentire qualsiasi tipo di connessione NSAllowsArbitraryLoads: true
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
</dict>
Naturalmente alcuni collegamenti sono destinati e recuperare i dati dai propri server e dai server di terze parti.
entrambi i casi è ora possibile intercettare il traffico dell'applicazione, che è generato da strumenti di terze parti, o fare uso di registrazione tutto il traffico di rete, fatto riferimento qui: How can I figure out which URL is being blocked by App Transport Security?
E 'facile rintracciare tutti gli errori che si verificano in questo registro (non troppo difficile da cercare un codice di errore). In questo modo sono stato facilmente in grado di vedere quali connessioni sono state stabilite e forse non riuscite, a causa dei limiti di carico (ovviamente, i buoni ingegneri del software sanno a memoria;))
Qualsiasi tipo di tracker di terze parti o la propria rete l'installazione funziona correttamente, nonostante Google Analytics. All'inizio ho scaricato gli ultimi codici di esempio e li ho visti, ovviamente non ci si può aspettare che una libreria supporti già i più recenti sistemi beta, tuttavia, ho provato. E non è riuscito appena le NSAllowsArbitraryLoads è impostato su false/NO
Anche con limitando il meno possibile per la terza parte non ero in grado di farlo funzionare:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<false/>
<key>NSExceptionDomains</key>
<dict>
<key>ssl.google-analytics.com</key>
<dict>
<key>NSRequiresCertificateTransparency</key>
<true/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
provato anche google-analytics .com e includere sottodomini NSIncludesSubdomains: true. Inoltre, poiché il semplice richiamo del sito web nel browser "https://google-analytics.com" reindirizza a "https://www.google.com/analytics/", ho anche provato a consentire a google.com come dominio delle eccezioni aggiuntivo, anche questo non riesce.
aveva anche uno sguardo ai ssl-cifrari supportati, penso che non sono un problema qui:
nmap --script ssl-enum-ciphers -p 443 ssl.google-analytics.com
| TLSv1.2:
| ciphers:
| TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA (dh 256) - C
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (dh 256) - A
| TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (dh 256) - A
| TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (dh 256) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (dh 256) - A
| TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 (dh 256) - A
| TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (dh 256) - A
| TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (dh 256) - A
| TLS_ECDHE_RSA_WITH_RC4_128_SHA (dh 256) - A
| TLS_RSA_WITH_3DES_EDE_CBC_SHA (rsa 2048) - C
| TLS_RSA_WITH_AES_128_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_128_CBC_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA (rsa 2048) - A
| TLS_RSA_WITH_AES_256_CBC_SHA256 (rsa 2048) - A
| TLS_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_MD5 (rsa 2048) - A
| TLS_RSA_WITH_RC4_128_SHA (rsa 2048) - A
Così, l'analisi dei dati di monitoraggio di Google non riesce ancora a domande come: https://ssl.google-analytics.com/collect?[....]
Qualcuno ha trovare una soluzione o magari trovare qualche tipo di errore nel mio approccio?