Bir daha fazla bağlam istiyorum olanlarınız için neden bu oluyor, bunu düzeltmek için nasıl ek olarak, daha sonra aşağıda okuyun.
İOS 9'un piyasaya sürülmesiyle, bir uygulama ve web hizmetleri arasındaki bağlantı güvenliğini artırmak için, bir uygulama ile web hizmeti arasındaki güvenli bağlantıların en iyi uygulamaları izlemesi gerekir . En iyi uygulama davranışı App Transport Security tarafından aşağıdakiler için zorunlu kılınmaktadır :
- kazara ifşayı önlemek ve
- güvenli olan varsayılan bir davranış sağlar.
App Transport Security Technote'ta açıklandığı gibi, web hizmetinizle iletişim kurarken App Transport Security artık aşağıdaki gereksinimlere ve davranışlara sahiptir:
- Sunucunun en azından Aktarım Katmanı Güvenliği (TLS) protokolü 1.2 sürümünü desteklemesi gerekir.
- Bağlantı şifreleri, ileri gizlilik sağlayanlarla sınırlıdır (aşağıdaki şifrelerin listesine bakın.)
- Sertifikalar, 2048 bit veya daha büyük RSA anahtarı veya 256 bit veya daha büyük Eliptik Eğri (ECC) anahtarıyla bir SHA256 veya daha iyi imza karma algoritması kullanılarak imzalanmalıdır.
- Geçersiz sertifikalar sabit bir arızaya neden olur ve bağlantı olmaz.
Başka bir deyişle, web hizmeti isteğiniz: a.) HTTPS kullanmalı ve b.) TLS v1.2 kullanılarak ileri gizlilikle şifrelenmelidir.
Ancak, diğer yayınlarda belirtildiği gibi, uygulamanızın güvenli olmayan alanını belirterek bu yeni davranışı Uygulama Aktarımı Güvenliği'nden geçersiz kılabilirsiniz Info.plist
.
Geçersiz kılma için eklemek gerekir NSAppTransportSecurity
> NSExceptionDomains
adresinden Müşteri Sözlük özelliklerini Info.plist
. Ardından, web hizmetinizin etki alanını NSExceptionDomains
sözlüğe ekleyeceksiniz .
Örneğin, ben www.yourwebservicehost.com ana bir web hizmeti için App Transport Güvenlik davranışını atlamak istiyorsanız o zaman ben aşağıdakileri yapmak:
Uygulamanızı Xcode'da açın.
Info.plist
Proje Gezgini'nde dosyayı bulun ve "sağ fare" üzerine tıklayın ve Farklı Aç > Kaynak Kodu menü seçeneğini seçin. Özellik listesi dosyası sağ bölmede görünecektir.
Aşağıdaki özellikler bloğunu ana özellikler sözlüğünün içine yerleştirin (ilkinin altına <dict>
).
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>www.example.com</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.1</string>
<key>NSIncludesSubdomains</key>
<true/>
</dict>
</dict>
</dict>
Ek alan adları için istisnalar sağlamanız gerekiyorsa, altına başka bir sözlük özelliği eklersiniz NSExceptionDomains
.
Yukarıda atıfta bulunulan tuşlar hakkında daha fazla bilgi için, daha önce bahsedilen bu teknik notu okuyun .