苹果ATS 豁免摆乌龙?
现象
我们的App已经完成了NA部分的ATS适配。
网页端由于有使用到第三方的页面,所以开启了网页的豁免权限。
关于如何开启豁免及方法,可以参考喵神的Blog
最终,我们的适配参数为:
NSAllowsArbitraryLoads: YES
NSAllowsArbitraryLoadsInWebContent: YES
但是,在访问一些Https先行者的网站(如:移动营业厅)时,却出现了网页无法正常访问的情况。
且这种情况只出现在iOS 10.0(.x),及10.1(.x)上,iOS 10.2上就没有问题。
分析
这种情况在做NA Https化的时候也遇到过,通常是和证书有关系。
于是做了以下实验:
- 用Chrome浏览器查看证书详情,发现使用的加密算法,浏览器输出加密算法比较旧。
- 通过NSCurl的检测也发现这个网址确实不符合ATS的要求。(NSCurl使用参考网址)
- 开启整个APP豁免ATS,这个页面是可以正常访问的。
说明虽然之前我们的App要求了网页的ATS豁免,但是在iOS 10.0(.x),及10.1(.x)并未生效。
顺着这个思路,终于找到了苹果论坛的一个帖子,这是个系统bug……讨论得挺热烈的。
最后苹果工作人员给出建议:
The obvious workaround would be to continue to use NSAllowsArbitraryLoads until this problem is resolved.
You should also contact the site owner: the level of security for that site is way below what I would expect to see on the modern Internet.
如此,如果你的App用到了先驱网站又想想覆盖iOS 10.0/10.1的系统,只剩下NSAllowsArbitraryLoads一条路可走了。
然后记得用联通手机打电话给移动“你们的网站安全级别太低了,赶紧给上帝(laozi)升级!”
设想苹果推行ATS的未来
通过这个事件,苹果估计得更改一下他们推行ATS的计划了。
那么多做HTTPS的先驱,他们用的算法各异,只要我们的网页中有跳转到这些先驱网页的可能,就必须开启网页的豁免。如果开启这个就必须做NA的ATS化。
再加上iOS 10.0/10.1的这个bug,NSAllowsArbitraryLoadsInWebContent也用不得了,就剩下和iOS 9一样的NSAllowsArbitraryLoads设置为YES才能让iOS 10.0/10.1上可以正常访问先驱网页。
2016年末苹果说会推迟ATS强制执行的时间。
iOS 9发布后到iOS 10苹果想出了个新的Key解决ATS豁免问题。
现在新Key不能用了。看来这一推迟,怎么也得到下个大版本之后了。
苹果ATS 豁免摆乌龙?的更多相关文章
- 服务器配置ssl证书支持苹果ATS方法
服务器配置ssl证书支持苹果ATS方法 发布日期:2016-12-14 苹果安全工程&架构部门主管Ivan Kristic表示ATS将在今年底成为App Sotre app的必要条件,这将大幅 ...
- 为苹果ATS和微信小程序搭建 Nginx + HTTPS 服务
昨天测试开发微信小程序,才发现微信也要求用HTTPS加密数据,想来是由于之前苹果的ATS审核政策的缘故吧,微信想在苹果上开放小程序必然也只能要求开发者必须使用HTTPS了,于是在服务器上测试安装Ngi ...
- 苹果ATS Win2008 R2 IIS7.5 HTTPS 证书的那些可能遇到的坑
前言:工作这么多年,每一次要弄https 都和苹果有关,上一次是苹果app的企业安装形式,ios7后 .plist 文件必须在一个https路径. 这一次则是苹果的ATS计划,无疑这是在推动网络安全上 ...
- 正确适配苹果ATS审核要求的姿势
首先,ATS的技术行为不会有任何变化(除了新增两个字段NSAllowsArbitraryLoadsInWebContent和NSRequiresCertificateTransparency,也就是更 ...
- https与http的访问,应对苹果ATS验证问题
为应对2017年1月1日苹果ATS的问题,微信.微博等等APP要求挂载的网页必须https访问,需要添加ssl认证. 一.SSL认证 选取了阿里云提供的免费SSL,使用期限为一年.电话咨询阿里客服,免 ...
- Apache和Nginx配置支持苹果ATS方法
什么是ATS功能? ATS是iOS9和OS X El Capitan的一个新特性.开启该功能后,ATS对使用NSURLConnection, CFURL或NSURLSession 等APIs 进行的网 ...
- 苹果ATS特性服务器证书配置指南
配置指南: 需要配置符合PFS规范的加密套餐,目前推荐配置: ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!AD ...
- 苹果ATS特性服务器配置指南 HTTPS 安卓可以用 IOS 报错。
解决方案:https://www.qcloud.com/document/product/400/6973 ATS检测:https://www.qcloud.com/product/ssl#userD ...
- 苹果iOS APP配置HTTPS,iOS ATS配置SSL,苹果ATS标准解决方案
参考沃通:
随机推荐
- ZOJ 4016 Mergeable Stack(利用list模拟多个栈的合并,STL的应用,splice函数!!!)
Mergeable Stack Time Limit: 2 Seconds Memory Limit: 65536 KB Given initially empty stacks, ther ...
- day35
今日内容: 1.进程间互相通信(IPC机制) 2.生产者消费者模型 3.线程理论 4.线程开启的两种方式 5.线程相关属性方法 6.守护线程 7.线程互斥锁 1.进程间相互通信(IPC机制) 主要是一 ...
- linux找到目录下所有目录文件
想要删除掉该目录下的所有文件类型是目录的文件? 这样运行: $ ls -F | grep /$ | xargs rm -rf ls 中F参数,作用是能把目录文件的名字后边加上一个斜杠/ 然后匹配以斜杠 ...
- javascript删除Cookie的正确方法(转载)
原来一直以为只要设置javascript的document.cookie对象就能简单的在浏览器端设置和删除cookie值,网上很多文章也是这么教的,但是最近发现简单的设置javascript的docu ...
- Docker:一个装应用的容器
一:简介:你是否经历过“我本地运行没问题啊!““哪个哥们有写死循环了““完了,服务器撑不住了“等等问题,docker就是这么帮你解决问题的工具,它可以帮你把web应用自动化打包和发布,在服务型环境下进 ...
- Bat 批处理杀死进程 重新启动程序
@echo offset pa=%cd%taskkill /F /IM wgscdTool.exeecho %pa%\wgscdTool.exeping /n 2 127.1>nulstart ...
- vue eslint报错解决办法
若提示入下图时,在build / webpack.base.conf.js中, 找到 // const createLintingRule = () => ({// test: /\.(js|v ...
- Linux部署DotNetCore记录
一.背景 最近半年或最近三个月来,公司在计划大刀阔斧的规划重构新的产品.按目前的计划和宣传还是很令人期待的.前端预计应用现在很流行的前端框架,有Vue.ElementUI等,后端宣传了很多微服务.持续 ...
- node基础:文件系统-文件读取
node的文件读取主要分为同步读取.异步读取,常用API有fs.readFile.fs.readFileSync.还有诸如更底层的fs.read,以及数据流(stream),后面再总结下咯~ 直接上简 ...
- Js_Eval方法
定义和用法eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码. 语法eval(string) 其中参数string为必需.是要计算的字符串,其中含有要计算的 JavaScr ...