iOS应用2017年强制应用HTTPS问题

2016-10-18

iOS应用2017年使用HTTPS问题

昨天一个朋友发了一篇介绍HTTPS方案文章给我看,文章提到2017年苹果强制所有APP使用HTTPS协议,问我是不是真的,还是说那只是一篇软文。他也很担心,因为他的APP不是使用HTTPS协议。

其实应该说是这样:从2017年1月1日起,苹果强制新提交的APP使用HTTPS协议。这里要强调新提交,也就是说已经上线了的APP不受影响,新提交的APP或新版本提交才受影响。虽说强制,但是还是有方法不使用HTTPS协议的。

我查了下,现在的资料有提到3种方案:

  • 1是APP里有一个配置开关NSAllowsArbitraryLoads,打开这个开关,所有网络请求都可以使用HTTP。现在所有没有用HTTPS协议的都是这么干的。这个开关现在用是没有问题的,但是2017年后苹果就不希望你这么用了。你再用的话,需要说明原因,而且理由不充分的话苹果有可能拒绝通过你的APP。

  • 2是增加域名白名单(NSExceptionDomains),访问白名单之内的网站请求可以是HTTP请求。这种做法也要说明理由,苹果认为你的理由不充分仍然有可能拒绝通过你的APP

  • 当然还有一种方案,是在iOS10系统新加的属性NSAllowsArbitraryLoadsInWebContent,专门针对浏览器访问的开关。设想一个浏览器应用,用户可以输入任务网址,这个网址能不能支持HTTPS协议,没人知道。所以就有这么一个开关,打开之后,浏览器的访问就不受HTTPS限制。但是不好的消息是,这个浏览器必须是WKWebView,而不能是UIWebView(截止2016.10.18前,查到资料是这样的,但是不排除以后苹果会对UIWebView也可是使用这个属性)

现在大家都担心2017年后该怎么支持HTTPS。我觉得大公司的话应该尽早全部支持HTTPS,小公司的话可以考虑使用上述方案。发挥聪明才智,给一些理由糊弄苹果让你的APP不支持HTTPS。我觉得针对中国的国情,苹果有可能会对中国的APP采用HTTPS审核宽松些,但也很难说。

参考资料:

关于 iOS 10 中 ATS 的问题

iOS 10 与 ATS - 更加安全的机制

Category: iOS Tagged: HTTPS 2017 iOS10

Comments