iOS ATS / 非HTTPS被禁問題

前言

自iOS 9起蘋果就開始推薦使用HTTPS,在iOS 9中默認(rèn)是禁止非HTTPS的協(xié)議來訪問網(wǎng)絡(luò)的,但是還是給我我們緩沖的機(jī)會(huì),解決方法:

1、在Info.plist中添加NSAppTransportSecurity類型Dictionary。
2、在NSAppTransportSecurity下添加NSAllowsArbitraryLoads類型Boolean,值設(shè)為YES

2016年6月WWDC之后,便傳出從2017年1月1日起蘋果提出所有新提交的App默認(rèn)不允許使用NSAllowsArbitraryLoads來繞過ATS的限制,也就是說強(qiáng)制我們用HTTPS,如果不這樣的話提交App可能會(huì)被拒絕。在2016年即將結(jié)束之際,我們也網(wǎng)站和APP也開始支持HTTPS的工作,但是之前也有傳言說2017年1月1日App Store不會(huì)強(qiáng)制支持HTTPS,事實(shí)確實(shí)如此:

Supporting App Transport Security
App Transport Security (ATS), introduced in iOS 9 and OS X v10.11, improves user security and privacy by requiring apps to use secure network connections over HTTPS. At WWDC 2016 we announced that apps submitted to the App Store will be required to support ATS at the end of the year. To give you additional time to prepare, this deadline has been extended and we will provide another update when a new deadline is confirmed. Learn more about ATS.

不管怎么說我們還是要支持HTTPS,原因三點(diǎn):

1、iOS客戶端強(qiáng)制支持HTTPS以后是必然的趨勢
2、HTTPS協(xié)議解決了很多客戶端和服務(wù)端安全問題
3、領(lǐng)導(dǎo)們很關(guān)注

問題描述

問題一:一些第三方的SDK并沒有及時(shí)支持HTTPS我們?cè)趺唇鉀Q呢?
問題二:如何知道哪些接口是非HTTPS的呢?

解決辦法

  • 問題一:

把一些不支持HTTPS的第三方接口添加NSExceptionDomains白名單中,配置如下:
1、在Info.plist中添加NSAppTransportSecurity類型Dictionary
2、在NSAppTransportSecurity中添加NSExceptionDomains類型Dictionary。
3、在NSExceptionDomains中添加要支持的域(也就是非HTTPS的接口地址),域作為Key,類型為Dictionary

4、在每個(gè)域下面添加三個(gè)Boolean類型的屬性,如下:

    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>qq.com</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSExceptionRequiresForwardSecrecy</key>
                <false/>
                <key>NSExceptionAllowsInsecureHTTPLoads</key>
                <true/>
            </dict>
          </dict>
   </dict>
  • 問題二:

1、在NSAppTransportSecurity下添加NSAllowsArbitraryLoads類型Boolean,值設(shè)為YES,調(diào)試找到非HTTPS接口后記得改成NO。
2、使用Charles抓包,詳細(xì)使用教程請(qǐng)查看:Charles 從入門到精通
3、把抓到的一些非HTTPS的接口添加到白名單中,添加方法請(qǐng)看問題一解決辦法

注意事項(xiàng)

1、抓包的時(shí)候發(fā)現(xiàn)有些圖片的地址是非HTTPS的,也會(huì)導(dǎo)致圖片無法顯示,把地址添加到白名單中即可或協(xié)調(diào)服務(wù)端進(jìn)行修改。
2、友盟統(tǒng)計(jì)、友盟分享、百度地圖等SDK現(xiàn)已支持HTTPS記得更新哦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容