iOS9對應(yīng)用通訊安全策略進行了升級, 已不再支持http這種不安全的協(xié)議(具體可見網(wǎng)址:What's New in iOS 9.0)
新特性要求App內(nèi)訪問的網(wǎng)絡(luò)必須使用HTTPS協(xié)議鬼廓,http是超文本傳輸協(xié)議, 信息采用明文傳輸, 而https則使用SSL加密傳輸協(xié)議進行傳輸归敬。
但是現(xiàn)在公司的項目使用的是HTTP協(xié)議惫谤,使用私有加密方式保證數(shù)據(jù)安全∩吨剑現(xiàn)在也不能馬上改成HTTPS協(xié)議傳輸拔妥。
因此設(shè)置成http訪問在某些情況下是必然的荆萤,具體的更改方式有兩種
一是更改Info.plist文件,使用Source Code打開矩父,添加如下代碼:
NSAppTransportSecurity
NSAllowsArbitraryLoads
代表可以進行任意的http請求
方法二:同樣在Info.plist文件里直接添加字典
類型NSAppTransportSecurity為Dictionary锉桑,子字典為NSAllowsArbitraryLoads,類型為Boolean窍株,設(shè)置為YES;
不過上面介紹的方法雖然解決了網(wǎng)絡(luò)訪問的問題民轴,但是蘋果提供的安全保障也被關(guān)閉了攻柠。但是按照國內(nèi)的現(xiàn)狀,關(guān)閉這個限制也許是更實際的做法后裸。至于原因就太多了瑰钮,第三方SDK(幾乎都是訪問HTTP),合作伙伴接入(不能要求它們一定要支持HTTPS)微驶。
如果你的App沒有受到這些原因的限制浪谴,還是更建議你增加HTTPS支持,而不是關(guān)閉限制因苹。
出于安全考慮我們提倡使用HTTPS苟耻,https雖然還未普及,但是它的加密比較安全性高容燕,所以比較建議將https設(shè)為優(yōu)先梁呈,http設(shè)置為例外訪問,具體如下:
NSAppTransportSecurityNSExceptionDomainsqq.comNSIncludesSubdomainssina.com.cnNSIncludesSubdomains
根據(jù)自己需要的域名修改蘸秘, NSIncludeSubdomains 就是包括子域的意思官卡。