今天升級(jí) Xcode 7.0 bata甲锡,發(fā)現(xiàn)網(wǎng)絡(luò)訪問失敗陕贮。
輸出錯(cuò)誤信息
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.
Google后查證闰蛔,iOS9引入了新特性 App Transport Security (ATS) 衣厘。
詳情: App Transport Security (ATS)
新特性要求App內(nèi)訪問的網(wǎng)絡(luò)必須使用 HTTPS協(xié)議冬筒。但是現(xiàn)在公司的項(xiàng)目使用的是 HTTP協(xié)議赘风,使用私有加密方式保證數(shù)據(jù)安全〗空叮現(xiàn)在也不能馬上改成 HTTPS協(xié)議傳輸仁卷。
最終找到以下解決辦法:
在Info.plist中添加 NSAppTransportSecurity 類型 Dictionary 。
在 NSAppTransportSecurity 下添加 NSAllowsArbitraryLoads 類型 Boolean, 值設(shè)為 YES
參考:
App Transport Security support aka apps on iOS 9 don't work #4560
711_networking_with_nsurlsession.pdf
總結(jié):
蘋果正在加大應(yīng)用安全的管控犬第,這個(gè)舉措可以看出蘋果對(duì)信息安全的重視锦积,也暴露出大部分應(yīng)用傳輸數(shù)據(jù)時(shí)都是未經(jīng)過加密的,或使用私有方式加密歉嗓,以至于蘋果開始對(duì)開發(fā)者提出要求丰介。
私有加密雖然一定程度上是安全的,但是終究不是一個(gè)長久之計(jì)鉴分。全世界這么多安全專家在維護(hù) HTTPS安全哮幢,早日使用 HTTPS確保信息安全才是王道!也省去了私有加密協(xié)議的安全隱患志珍!