一、假新闻如此猖獗

  刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办?

  公司里已经有很多人问过这个问题,回答一下: 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来进行适配。

  然而 网络上的各种文章开始疯狂的传播假新闻:2017年1月1日起,必现用HTTPS才能通过审核!必现满足苹果对HTTPS证书和加密规则的要求!

  刚开始是IT软文,然后就是iOS开发人员在自己的博客里不断传播。好吧,说明很多人写技术博客看到别人的观点 也不进行验证真假,直接拿来用。并且现在绝大多数的文章都是错的,这个有点恐怖。。。

  连大多数的技术文章说的都是假的,想想其他社会新闻,假的会更多吧。  媒体的力量可以控制你的认知,哪怕这个认知是错的。

  后来 在论坛中 苹果官方人员也给出过解释: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。迟早的事情。

二、如何适配HTTPS

  因为我们的APP已经适配了HTTPS了。现在还用HTTP 不安全,确实太low了(当然HTTPS也是可以被抓包破解的,见我的另一篇博客:逆向工程 - Reveal、IDA、Hopper、HTTPS抓包 等)。说下如何适配HTTPS吧:

  1、更新sdk:友盟、个推 等,这些第三方sdk都已经适配HTTPS了,具体的更新和配置看官方文档就好了。

  2、域名如果 满足苹果HTTPS的规则,就不用配置,如果不满足 还需要根据自己的情况配置,如:

    

  3、我们的HTTPS是ForwardSecrecy不符合苹果的要求,我们的运维也在积极的适配,如果用的nginx,可以直接在nginx中配置ssl_ciphers选项,我们公司用的 Red ware(类似F5,以色列的设备),就需要单独配置了。

  4、测试环境很多公司都是用IP地址访问,这个时候如果不使用NSAllowsArbitraryLoads忽略ATS,在iOS9下是报错的,iOS10没问题。所以DEBUG环境还是要加上NSAllowsArbitraryLoads的,发布AppStore的时候去掉这个配置 就可以了。

  5、腾讯云提供了一个苹果ATS检测的网页,大家可以把自己的域名放上去试试。HTTPS的默认端口是443,看我们公司域名的测试结果:

我们当时适配HTTPS的时候 腾讯云 还没出这个检测的网页,我们是通过配置Xcode的ATS选项来确定是哪里不符合要求的。最后和腾讯云的结果一直。

    

欢迎关注我的今日头条号 名称: 云端梦想科技

欢迎关注我的微信公众号:dreams2999

猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS的更多相关文章

  1. [转载]Ubuntu17.04(Zesty Zapus)路线图发布:2017年4月13日发布

    Canonical今天公布了Ubuntu 17.04(Zesty Zapus)操作系统的发布路线图,该版本于今年10月24日上线启动,toolchain已经上传且首个daily ISO镜像已经生成.面 ...

  2. 2017年1月5日 星期四 --出埃及记 Exodus 21:31

    2017年1月5日 星期四 --出埃及记 Exodus 21:31 This law also applies if the bull gores a son or daughter.牛无论触了人的儿 ...

  3. 2017年1月4日 星期三 --出埃及记 Exodus 21:30

    2017年1月4日 星期三 --出埃及记 Exodus 21:30 However, if payment is demanded of him, he may redeem his life by ...

  4. 2017年1月3日 星期二 --出埃及记 Exodus 21:29

    2017年1月3日 星期二 --出埃及记 Exodus 21:29 If, however, the bull has had the habit of goring and the owner ha ...

  5. 2017年1月2日 星期一 --出埃及记 Exodus 21:28

    2017年1月2日 星期一 --出埃及记 Exodus 21:28 "If a bull gores a man or a woman to death, the bull must be ...

  6. 2017年1月1日 星期日 --出埃及记 Exodus 21:27

    2017年1月1日 星期日 --出埃及记 Exodus 21:27 And if he knocks out the tooth of a manservant or maidservant, he ...

  7. 2017年1月8日 星期日 --出埃及记 Exodus 21:34

    2017年1月8日 星期日 --出埃及记 Exodus 21:34 the owner of the pit must pay for the loss; he must pay its owner, ...

  8. 2017年1月7日 星期六 --出埃及记 Exodus 21:33

    2017年1月7日 星期六 --出埃及记 Exodus 21:33 "If a man uncovers a pit or digs one and fails to cover it an ...

  9. 2017年1月6日 星期五 --出埃及记 Exodus 21:32

    2017年1月6日 星期五 --出埃及记 Exodus 21:32 If the bull gores a male or female slave, the owner must pay thirt ...

随机推荐

  1. opencv在图像显示中文

    在图像定位和模式识别时,经常需要把结果标注到图片上,标注内容可以是数字字母.矩形框等(opencv支持的)或者是中文汉字(借助freetype). 1.显示数字/矩形框 #include <op ...

  2. SQL Server 常用内置函数(built-in)持续整理

    本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的 ...

  3. Partition:增加分区

    在关系型 DB中,分区表经常使用DateKey(int 数据类型)作为Partition Column,每个月的数据填充到同一个Partition中,由于在Fore-End呈现的报表大多数是基于Mon ...

  4. InnoDB体系结构学习笔记

    后台线程 Master Thread 核心的后台线程,主要负责将缓冲池的数据异步刷新到磁盘,保证数据的一致性,包括(脏页的刷新).合并插入缓冲.(UNDO页的回收)等 IO Thread 4个writ ...

  5. 一道返回num值的小题目

    题目描述: 实现fizzBuzz函数,参数num与返回值的关系如下: .如果num能同时被3和5整除,返回字符串fizzbuzz .如果num能被3整除,返回字符串fizz .如果num能被5整除,返 ...

  6. Eclipse中启动tomcat报错java.lang.OutOfMemoryError: PermGen space的解决方法

    有的项目引用了太多的jar包,或者反射生成了太多的类,异或有太多的常量池,就有可能会报java.lang.OutOfMemoryError: PermGen space的错误, 我们知道可以通过jvm ...

  7. MySQL 系列(三)你不知道的 视图、触发器、存储过程、函数、事务、索引、语句

    第一篇:MySQL 系列(一) 生产标准线上环境安装配置案例及棘手问题解决 第二篇:MySQL 系列(二) 你不知道的数据库操作 第三篇:MySQL 系列(三)你不知道的 视图.触发器.存储过程.函数 ...

  8. iOS架构一个中型普通App的一些经验总结

    这一版比较完善的的App终于提交审核了.有时间写写自己的一些经验的总结了.自己主导的从0到比较成型的app到目前来说也只有两个,但是其中的很多东西都是大同小异.基本上是想到了什么就写什么,感觉写的不到 ...

  9. Android—简单的仿QQ聊天界面

    最近仿照QQ聊天做了一个类似界面,先看下界面组成(画面不太美凑合凑合呗,,,,):

  10. iOS开发 判断当前APP版本和升级

    从iOS8系统开始,用户可以在设置里面设置在WiFi环境下,自动更新安装的App.此功能大大方便了用户,但是一些用户没有开启此项功能,因此还是需要在程序里面提示用户的 方法一:在服务器接口约定对应的数 ...