以前蘋果強制app上傳AppStore必須支持ATS,截至日期是2017年01月01日,可是因爲各類緣由,致使deadline延期.具體何時蘋果會強制ATS,官方暫時尚未給出明確答覆.ios
支持Https後,通常狀況下只會給域名添加證書.致使app全部的http請求都會走域名,這樣就會有DNS劫持的風險.不管wifi網絡下,仍是移動網絡根據域名都會去DNS服務解析成ip,而後進行訪問.因爲國內網絡環境的緣由,都會有DNS劫持的狀況,通常會在訪問網頁的時候,在頁面上嵌入一段js代碼,甚至有些狀況會出現DNS解析失敗.尤爲是用戶達到必定規模,各類網絡情況都會出現.瀏覽器
這裏用移動設備舉例,若是是wifi網絡,通常用戶是不會修改網絡設置的DNS. 頗有可能用戶網絡環境因爲種種緣由,會形成沒法訪問http服務.ATS以前的解決方案是能夠直接使用ip地址,通常app都會有這樣一個邏輯,從服務器獲取DNS Config,這裏面通常配置了domain,ip,protocol,port等屬性,App的請求能夠根據DNS Config進行動態調整.可是支持ATS後天,蘋果設置必須支持https.這樣一旦使用域名的http服務,都會有可能遇到DNS劫持的狀況.安全
因爲IP不必定可以長期保持,因此通常不會給ip地址配證書.一旦蘋果強制支持ATS,那麼就存在DNS劫持的風險.bash
dig命令查詢DNS解析,下面是解析百度的域名服務器
dig www.baidu.com ; <<>> DiG 9.8.3-P1 <<>> www.baidu.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48389 ;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 5, ADDITIONAL: 5 ;; QUESTION SECTION: ;www.baidu.com. IN A ;; ANSWER SECTION: www.baidu.com. 380 IN CNAME www.a.shifen.com. www.a.shifen.com. 134 IN A 119.75.218.70 www.a.shifen.com. 134 IN A 119.75.217.109 ;; AUTHORITY SECTION: a.shifen.com. 194 IN NS ns3.a.shifen.com. a.shifen.com. 194 IN NS ns5.a.shifen.com. a.shifen.com. 194 IN NS ns4.a.shifen.com. a.shifen.com. 194 IN NS ns2.a.shifen.com. a.shifen.com. 194 IN NS ns1.a.shifen.com. ;; ADDITIONAL SECTION: ns4.a.shifen.com. 49 IN A 115.239.210.176 ns2.a.shifen.com. 580 IN A 180.149.133.241 ns5.a.shifen.com. 580 IN A 119.75.222.17 ns1.a.shifen.com. 580 IN A 61.135.165.224 ns3.a.shifen.com. 238 IN A 61.135.162.215 ;; Query time: 6 msec ;; SERVER: 172.17.16.3#53(172.17.16.3) ;; WHEN: Tue Feb 21 12:25:06 2017 ;; MSG SIZE rcvd: 260
瀏覽器直接輸入這兩個ip:119.75.218.70,119.75.217.109,能夠直接訪問百度.若是前面加上https://119.75.218.70,進行訪問,因爲沒有證書會顯示不安全的連接.可是跳過以後仍是可以正常訪問.我用ios設備測試,底層調用https://ip能夠正常訪問.各類請求都沒有問題.網絡
若是正常網絡環境下能夠用全部的http服務儘可能域名訪問,每次啓動app時能夠向服務器獲取dig出來的ip做爲備用ip,一旦遇到DNS劫持的狀況,雖然沒有給ip配證書,可是底層可使用ip正常訪問.app