iOS強制ATS後,DNS劫持問題如何解決?

以前蘋果強制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

相關文章
相關標籤/搜索