App上架重磅通知:App Store安全新规17年1月生效

作者:沙铭

来源:公众号 沙铭世界观

ID:mobview

做推广的也许并不了解什么是ATS(App Transport Security),不过这却是一个定时炸弹,引爆点在2016年底,后果就是你不注意,可能就会导致产品无法在App Store上架,虽然没有违规操作下架那么严重,但结果同样致命。现在还有2个月的缓冲期,但还有很多开发者没有想到这一点,有必要给大家提个醒。

ATS是在2015年由苹果引入的强化网络传输安全的标准,要求所有的App在从Web端获取数据的时候都要使用安全的HTTPS链接,并进一步强调要使用最新的TLS1.2版本的HTTPS。

注:可以从网址前缀http://或者https://来区别两种标准

苹果也清楚还有大量的Web内容仍旧在使用不安全的HTTP链接,因此定义了ATS开关选项的集合(Dictionary),允许大家通过info.plist文件设置(如下图所示),不过我估计99.9%的开发者会选择先打开允许任意链接的选项,然后大部分人过段时间就忘了这回事,好像什么事都没有发生过。

现在是醒过来面对现实的时候了,苹果在WWDC时已经透漏,强制使用ATS的大限是今年底,也就是说,从17年开始苹果审核团队会将ATS作为强制审核项,以苹果的脾气,可能会硬来,反正已经给了一年多的缓冲期了!

到时一刀切怎么办?作为CP应该如何处理?我们今天就来详聊下这个问题!

首先,我们还是要了解具体的政策,然后在此基础上做出合理的猜测,这样每家CP根据自己的具体情况评估之后就知道该怎么做了。然而无论如何,大的原则是要快速做出反应,不要存有侥幸心理!

当然,HTTPS是大势所趋,苹果强制执行ATS也是本着对用户负责的态度,无可厚非。在执行的尺度上,我认为苹果也会灵活的评估,肯定有一些"I will know it when I see it"的模糊情况,想必App Store的老司机都心领神会。

虽然说17年ATS会成为强制标准,但是这里面还是分为几种不同的情况的,为了帮助大家理解,沙铭从推广和开发两个角度去说

推广角度

 

  1. App的内容来源如果有自家网站,去和技术核对一下是使用哪种传输标准,如果仍然使用HTTP或者是低于TLS1.2的HTTPS,要不就赶紧整改,要不就准备和苹果审核磨,准备好申请特例的充分理由。在我的星座苹果系列中有两篇文章《善变双子,难言的苦衷:史上最强审核团队起底,掩藏的秘密》和《闷瓜金牛,本应昭告天下却缄默:开发者账号,审核加速揭秘》,了解应该如何跟审核团队打交道,以及开发者账号在审核过程中的作用,还是非常必要的。
  2. App的内容如果有来自已知的第三方,可以暂时不用管,让技术设置一下ATS的开关(下文中会涉及),不过最好的做法是和第三方沟通下,敦促他们所有的传输都使用TLS1.2加密。
  3. App的内容来自于不可知的第三方,比如说允许用户通过App访问任意网站,可以忽视ATS,不过来自于自有网站的内容还是必须遵循第一条。同时询问技术使用的是何种框架,如果是WebKit,建议切换到Safari,否则今后可能还会有麻烦事。
  4. 如果是提供流媒体内容的App,不想服从于ATS,就必须在源头进行流媒体加密,并且使用苹果的流媒体框架,就可以暂时无视ATS。

因此,大家可以根据自己的情况来决定是采用哪种对策,当然上策是尽量使用TLS1.2的HTTPS安全标准,实在不行就要多想想如何跟苹果解释,以争取特例!

不过有个问题目前还不是特别明朗:对于那些不达标准的已上架App如何处理?我个人不太相信App会因为这个原因被下架,苹果最可能的做法是等到App迭代时拒绝上架。这时可能又有人会想了:那我就不更新!呵呵,也许也是一种办法。总而言之,新一轮的猫捉老鼠游戏又要开始了。

开发角度

1. ATS设置中打开了以下开关,又没有提交合理的解释,那么会100%被拒

  1. NSAllowsArbitraryLoads,打开此开关相当于关闭ATS
  2. NSExceptionAllowsInsecureHTTPLoads,使用自有网站的HTTP链接
  3. NSExceptionMinimumTLSVersion,使用自有网站低于TLS1.2标准的HTTPS链接

至于什么是合理的解释,这个就完全是一个主观判断的过程了,也许有的人觉得自己的理由很充分,但是如果不能够说服苹果审核,你的App就是上不了线,这考验团队的沟通技巧和英文水平!

2. 以下几种情况苹果给予特例,不需要提供解释:

  • App提供流媒体服务,媒体源已经对内容进行了加密,这时只要使用苹果的AV Foundation框架加载内容,就可以无视ATS;
  • 不使用Forward Secrecy(完全前向保密)技术,可以在ATS设置中关闭NSExceptionRequiresForwardSecrecy开关(缺省是打开);
  • NSThirdPartyException,使用第三方链接,而这里面又包括使用第三方HTTP链接或者是低于TLS1.2版本的HTTPS等几个开关。

估计有人会想,那我把自己的网站伪装成第三方网站,使用这个特例不就好了,Bingo!如果你能经得起被拒甚至更重的惩罚,也许可以试试,不过有理由相信苹果有多种方法判断关联网站,承受不起风险者勿试。

3. ATS设置中还有个开关NSAllowsArbitraryLoadsInWebContent,打开后允许使用任意Web链接,这个和NSAllowsArbitraryLoads有些区别,主要是针对那些提供类似于Web浏览器服务的App,由于事先不知道用户会浏览哪些网站,因此无法限制链接类型。

不过苹果建议如果要提供浏览器类的服务,请使用SFSafariViewController,优于WKWebView,后者更适用于对用户访问web内容更有把控的情况。

关于ATS的详细设置,开发可以参考苹果官方文档。

此外,苹果还建议放弃以下较老的标准

  • RC4
  • SSLv3
  • SHA-1
  • 3DES

并向最新的安全标准迁移,包括

  • Forward Secrecy
  • SHA-2
  • OCSP Stapling
时间: 2024-12-05 13:06:39

App上架重磅通知:App Store安全新规17年1月生效的相关文章

苹果app上架Appstore网页APP上架 彩票原生app上架全程协助

苹果app上架专业的苹果appstore市场上架服务提供商,大幅度提高过审机率!提供从开发者证书制作,APP打包,增加原生功能,上架市场一体化完整服务! APP上架|IOS app上线流程|如何发布苹果app|app上架费用(联系qq*220*5357*007)苹果app上架Appstore网页APP上架 彩票原生app上架全程协助 如何将WebApp项目打包生成手机APP 1.首先我们需要先新建一个WebApp项目,目录结构为: index.html  项目首页html入口文件 --html 

iOS App上架发布到app store市场最新中文教程

iOS -App发布Appstore最新中文教程 这个教程教你怎么把开发好的ios应用上架到appstore市场,一步一步带截图,包括最新的appstore后台系统itunesconnect使用,证书创建和管理,应用id创建和管理,上传ipa等都将一步一步详细介绍. 下面从七个步骤进行详细介绍! 1.创建唯一标示符App IDs 2.申请发布证书 3.申请发布描述文件 4.到iTunes Connect创建App并填写信息 5.Windows下选择证书编译打包 6.Windows下上传IPA到A

百度手机助手上传应用,360助手上架app,豌豆荚发布app多少钱

百度手机助手上传应用,360助手上架app,豌豆荚发布app多少钱 QQ 2205357007 对于安卓App推广而言,申请应用市场App首发是比较有效的App推广方式.如何申请App首发?选择独家App首发还是联合App首发,都需要根据实际情况综合考虑. 目前比较有效的App首发市场包括:360手机助手.腾讯应用宝.百度手机助手.小米.华为.魅族.OPPO,当然有余力的情况下,也可以去申请相对小众的应用市场比如豌豆荚.安智.淘宝手机助手.联想.搜狗.机锋.VIVO.金立等,下面泽思为大家介绍各

2018最新苹果APP上架App Store流程(超详细)

本文转发:https://blog.csdn.net/xxw888/article/details/73618837 2018最新整理iOS app上架app详细教程 上架iOS需要一个付费688的开发者账号,还没有的话申请一个或者借用. 申请苹果开发者账号教程 上架App Store之前是先安装到苹果手机测试调试好,app能正常运行再上架 iOS真机调试测试教程 上架过程分七个步骤,按步骤一步步来. 仔细看这个流程,少走很多弯路,不用一步步去试错,节省时间. 1.创建APP身份证(App ID

ios app上架流程

时隔1年又让我鼓捣iOS,刚接手就是上架,经验值为0的我,虽然内心是拒绝的,但还是要接受这项任务滴!也就是在被拒后重新审核,再改在提交...这样反复的过程中也对上架流程熟悉了好多,写篇帖子送给同为菜鸟的你,如果里面有很菜的东西,大牛请自动忽略,毕竟这也是还为菜鸟的我的备忘录呢!    一.证书的导出      1.1 前期工作        首先你需要有一个苹果的开发者帐号,一个Mac系统.        如果没有帐号可以在打开http://developer.apple.com/申请加入苹果的

iOS App 上架流程-新版本1.0上架

本文转自:http://ios.jobbole.com/84643/  感谢作者,解决了燃眉之急 题记 麻痹起来嗨!看网上那么多的教程,依然在我心爱的爱屁屁在上架的时候遇到各种 J8 问题,最大的问题就是:Xcode 证书什么的,Provisioning Profile 什么的,Debug 什么的,Production 和Distribution 什么乱 78 糟的都把我搞糊涂了,网上很多教程都是好旧的(虽然思路一样,但是不够详细),所以我打算把我今年已经上架的干货儿(下载地址,介绍地址)的上架

App上架流程 & 上架被拒10大原因

上架前预热 先登陆自己的开发者账号(自己提前注册好 iOS 开发者账号,这里假设你已经拥有了一个 iOS 开发者账号),进入这个页面:https://developer.apple.com/account/overview.action 由于我提交上架的是iOS Apps,因此进入最左边这一栏: 一开始,看着这几个“Certificates.Identifiers.Devices.Provisioning Profiles”,感觉没什么的,但是到实际用起来,特么的我就蒙圈了.下面解释一下这几个到

ios app 上架AppStore

一.证书的导出      1.1 前期工作        首先你需要有一个苹果的开发者帐号,一个Mac系统.        如果没有帐号可以在打开http://developer.apple.com/申请加入苹果的开发者计划.怎么申请网上有详细的介绍,因为我没有实际申请过,所以在此不多做介绍.        如果你已经有了一个IDP,打开https://developer.apple.com/并登录到苹果MemberCenter,登录以后可以看到下面这个界面,列出了你开发需要的一些工具,支持,i

App上架流程[利用Archive进行上传]

作者 M_Lee2016.01.22 10:47 写了14852字,被32人关注,获得了49个喜欢 [iOS]App上架流程[利用Archive进行上传] 字数2186 阅读507 评论3 喜欢9 今天给大家带来项目如何上架的教程 准备: 1. 一个开发者账号(需要交过钱的,??好黑) 2. 一个做完的项目 检查: 1. 你的Xcode必须是正式版,不可以是beta版本(不能上传项目) 2. 请确认你的Xcode是从App Store或者从开发者网站下的Xcode安装,而不是非法获取的安装包,因