1、假新聞如此猖獗html
剛纔一位老同事 打電話問:咱們公司仍是用的HTTP,立刻就到2017年了,提交AppStore會被拒絕,怎麼辦?nginx
公司裏已經有不少人問過這個問題,回答一下: HTTP仍是能夠正常提交,不知足 蘋果要求的 HTTPS 也能夠正常提交。只須要修改下info.plist裏的ATS配置。算法
另外,昨天(2016-12-21)蘋果發佈聲明,ATS的適配規則日後延,時間還沒定。也就是如今,你們什麼都不用改了。若是蘋果不出這個新聞,你們也不用適配HTTPS,由於蘋果規定的是禁止忽略ATS,這裏是ATS不是HTTPS,這兩個是不同的,這個問題10月份已經打電話問過蘋果官方了。具體能夠往下看。安全
之前寫過相關的文章:iOS的ATS配置 - 2017年前ATS規定的適配 。文章中也說過2017年1月1往後使用HTTP修改ATS配置便可。後來沒想到假新聞會傳播的如此瘋狂。微信
咱們來看看這個假新聞是怎麼快速傳播並忽悠你們的:新聞的起源是 蘋果開發者大會WWDC 2016上,蘋果首席安全架構師 Ivan提到的:2016年底ATS將成爲全部應用程序上傳到AppStore 的要求。注意這裏是ATS而不是HTTPS。網絡
iOS開發人員都知道, 從iOS 9 ATS出來後,你們都喜歡用 Allow Arbitrary Loads 選項來忽略ATS。若是不忽略ATS,APP就會強制使用HTTPS。架構
當時WWDC 2016上Ivan說的是 從 2017 年 1 月 1 日起,全部的新提交 app 默認是不容許使用 NSAllowsArbitraryLoads
來繞過 ATS 限制。能夠經過配置ATS來進行適配。app
然而 網絡上的各類文章開始瘋狂的傳播假新聞:2017年1月1日起,必現用HTTPS才能經過審覈!必現知足蘋果對HTTPS證書和加密規則的要求!運維
剛開始是IT軟文,而後就是iOS開發人員在本身的博客裏不斷傳播。好吧,說明不少人寫技術博客看到別人的觀點 也不進行驗證真假,直接拿來用。而且如今絕大多數的文章都是錯的,這個有點恐怖。。。post
連大多數的技術文章說的都是假的,想一想其餘社會新聞,假的會更多吧。 媒體的力量能夠控制你的認知,哪怕這個認知是錯的。
後來 在論壇中 蘋果官方人員也給出過解釋:What has changed is that App Review will require 「reasonable justification」 for most ATS exceptions. The goal here is to flush out those folks who, when ATS was first released, simply turned it off globally and moved on. That will no longer be allowed.
意思:不符合ATS要求的,須要進行說明理由。不能全局關閉ATS,即:不能再用NSAllowsArbitraryLoads了。
可是能夠用ATS的Exception Domains屬性進行相關配置。只須要提交的時候說明下緣由就能夠了。
好比:HTTP請求、不知足HTTPS要求的狀況,如:TLS協議版本低、ForwardSecrecy算法不知足規則。等,這些均可以進行配置。
另外,昨天的時候,蘋果發佈了新消息:2017年1月1日,你能夠繼續關閉ATS:
新聞地址:https://developer.apple.com/news/?id=12212016b
大致意思:爲了給大家更多的時間來準備,這個最終期限已經延長,具體什麼時間還沒定。
因此,如今你們如今 什麼都不用修改了。。
固然,咱們仍是建議你們都升級到HTTPS。早晚的事情。
2、如何適配HTTPS
由於咱們的APP已經適配了HTTPS了。如今還用HTTP 不安全,確實太low了(固然HTTPS也是能夠被抓包破解的,見個人另外一篇博客:逆向工程 - Reveal、IDA、Hopper、HTTPS抓包 等)。說下如何適配HTTPS吧:
一、更新sdk:友盟、個推 等,這些第三方sdk都已經適配HTTPS了,具體的更新和配置看官方文檔就行了。
二、域名若是 知足蘋果HTTPS的規則,就不用配置,若是不知足 還須要根據本身的狀況配置,如:
三、咱們的HTTPS是ForwardSecrecy不符合蘋果的要求,咱們的運維也在積極的適配,若是用的nginx,能夠直接在nginx中配置ssl_ciphers選項,咱們公司用的 Red ware(相似F5,以色列的設備),就須要單獨配置了。
四、測試環境不少公司都是用IP地址訪問,這個時候若是不使用NSAllowsArbitraryLoads忽略ATS,在iOS9下是報錯的,iOS10沒問題。因此DEBUG環境仍是要加上NSAllowsArbitraryLoads的,發佈AppStore的時候去掉這個配置 就能夠了。
五、騰訊雲提供了一個 蘋果ATS檢測的網頁,你們能夠把本身的域名放上去試試。HTTPS的默認端口是443,看咱們公司域名的測試結果:
咱們當時適配HTTPS的時候 騰訊雲 還沒出這個檢測的網頁,咱們是經過配置Xcode的ATS選項來肯定是哪裏不符合要求的。最後和騰訊雲的結果一直。
歡迎關注個人今日頭條號 名稱: 雲端夢想科技
歡迎關注個人微信公衆號:dreams2999