DCloud_UNI_CHB
DCloud_UNI_CHB
  • 发布:2021-11-19 20:57
  • 更新:2022-10-21 12:56
  • 阅读:6575

关于上周五部分iOS设备上App引擎崩溃的公告

分类:uni-app

各位开发者,

很遗憾的告知大家,DCloud服务在2021年11月19日下午遭遇大流量网络攻击,触发了iOS客户端的一个隐藏Bug,导致部分iOS设备上App引擎崩溃。

故障发生后,DCloud的工程师高度紧张,全力投入,在20分钟内将DCloud服务恢复正常,开发者的iOS App也随即恢复正常。

DCloud并非不负责任,也并非无能的公司。众多工程师仔细讨论,如何彻底杜绝将来再次发生类似故障,我们采取了如下完善措施:

  1. 服务器端技术专家组紧急集合,逐条确认服务器端的安全防控措施;补充说明:DCloud开发者服务已通过国家信息安全等级保护三级,证书编号:11010813802-20001;
  2. iOS App引擎当晚发布紧急更新,解决该隐藏漏洞。并检查了所有服务器返回数据的代码,确保以后即便服务器异常也不会造成App引擎崩溃;建议开发者尽快升级HBuilderX或离线打包SDK。

原因详细解释

  1. DCloud数据采集的目的
    为了持续优化应用性能、质量及提供统计报表,基于DCloud引擎开发的App,在运行过程中会采集应用启动时间、异常错误日志这两方面的数据。
    因为开发者的js代码无法正常采集到这些信息,比如启动时间,开发者的js代码能打点的第一行代码,已经是app运行了一会后才发生的事情了;崩溃更是如此,app崩溃时js也无法运行和打点数据。但这些信息又对于优化应用有重要参考意义。
    另外其他适配原生应用的统计sdk也不能正常统计到这2个信息,它们无法准确记录从app启动到首屏webview渲染的启动时间。
    这些数据,一方面用于DCloud优化产品,比如查看在哪些设备上启动慢或崩溃率高;另一方面,DCloud也给开发者提供了web界面自助查看这些数据,帮助开发者了解运营情况,详见dev.dcloud.net.cn。
  2. DCloud数据采集的合规性
    DCloud数据采集内容在HBuilder用户许可协议(菜单帮助-许可协议)和DCloud引擎隐私文档(Android平台iOS平台)中均有明确说明。
    这些数据的采集规则和脱敏策略符合中国各大应用商店规范和个人信息保护法,基于DCloud引擎开发的合法App,均可正常上线应用商店。
    DCloud通过了国家信息安全等级保护三级,证书编号:11010813802-20001,相关数据的保护措施完备。
    DCloud并非大数据公司,对采集用户个人隐私、开发者代码都没有兴趣。
  3. 如果仅是采集数据,没有返回内容,怎么会导致闪退?
    DCloud服务器会返回deviceID,因为现在手机上获取imei等唯一标记越来越困难,手机端app权限设置变化一次都可能导致设备id变化。为了尽可能保持标记统一性,由DCloud服务器计算一个更准确的deviceID。
    19日下午DCloud服务遭受恶意攻击后,无法给客户端返回预期格式的deviceID,iOS相关代码容错不合理造成了闪退。
  4. 影响面
    11月19日下午,iOS引擎,在异常的那20分钟内启动iOS app无法成功。之前启动,在那20分钟内使用的客户不会受影响。对开发者的波及面是比较有限的。

解决方案

在事故发生后,DCloud成立了专案组,首先应急解决了服务端故障,然后周五下午开会讨论治根方案,周六日与受影响的开发者主动打电话沟通,周一再次开了一天复盘总结会。
累计执行了众多方案:

  1. 采集服务器与客户端零信任机制,各自根治隐患
  2. 服务器强化拨测报警机制,对会造成重大故障的系统进行每分钟一次的拨测,在最短时间内发送告警
  3. 客户端排查所有请求代码,填补所有涉及服务器返回的容错代码,一处不漏(已于19日当晚加班发版)
    以后即便网络服务再被攻击,也100%确保不会闪退。
  4. 与受影响的开发者主动沟通
    此次故障给开发者造成的损失,我们感同身受。大家都是写代码的,都会被客户和领导责问。虽然故障时间只有20分钟,但发生这样的事情,肯定会给一些开发者造成损失,并破坏开发者对DCloud的信心。
    DCloud工程师主动联系了受影响的开发者,有些开发者电话或论坛私信未回,除了回复我们电话或私信外,也可以主动加QQ:154419462。
    我们会尽所能帮助开发者减少事故的影响,磋商令开发者可持续信任的方案。

针对本帖中开发者的热点评论,答复如下:

  • 关于源码:uni小程序sdk,面向大开发商,一直都有签署保密协议后获取源码的机制。如果你是政府机构或知名企业,可以发送邮件到bd@dcloud.io申请。

  • 关于后续App启动时间采集,也会改进策略,新增打点转向uniCloud版本和私有化版本,uni统计会开源并提供uni-admin插件,具体方案稍后公布。

  • 云打包和离线打包没有本质区别。云打包使用安心打包时,不会向DCloud服务器发送代码;即便不用安心打包,使用普通云打包,发送的仅是uni-app编译后的wgt,也不是源码,而且DCloud服务器不保存这些wgt。这些都在用户协议里明确说明了,DCloud不会违反用户协议,而且对这些wgt包也没有兴趣。

多年来,DCloud一直坚持为开发者提供免费、高效的开发工具的初心和使命,持续为开发者赋能。

DCloud初心不变,也希望大家继续信任DCloud!

22 关注 分享
时里 DCloud_uniCloud_WYQ 兔兔兔兔子 raise 希语 DCloud_uniCloud_JSON 虫雪浓 苏陌 罒 小恐龙lv 1***@qq.com MarkGo 单枪匹码 用云 w***@aliyun.com healthy 里海 愿随风丶飘雪 呵呵XLA 不老刘 7***@qq.com aiplat点com

该文章目前已经被锁定, 无法添加新评论

请教大佬

请教大佬

把自己家的东西测试完整,没问题之后再拿出来好嘛,你们急什么,不就是你们没测试过的东西坑用户吗。uni-admin也是前后端都没完全搞好拿出来了,急啥啊,一边更新一边慢慢搞,都不完整,老是更新新的东西真烦人
2021-11-20 15:34
请教大佬

请教大佬

出了事才有反应,估计你们自己都不用打包好的app测试的,真是坑,早干嘛去了,软件测试不会???老是马后炮
2021-11-20 15:29
DCloud_heavensoft

DCloud_heavensoft

回复 MarkGo :
放心,这些升级HBuilderX后,不会再有这种意外伤亡了
2021-11-20 15:12
MarkGo

MarkGo

回复 DCloud_heavensoft :
其实不是需要马上能提供“关闭启动时间和崩溃采集”的方案,只是希望后续能提供给用户进行选择,
类似之前antD圣诞事件,本意是好的,但是既然选择了开放,就让使用者进行选择。
而且开发者并不想获取任何源码,只是希望减少这些意外伤亡(非自身服务问题导致的)。
2021-11-20 15:01
苏陌

苏陌

回复 DCloud_heavensoft :
当我看到 ‘退出’ 两个字,心里一惊,然后发现应该是推出其它策略
2021-11-20 14:58
DCMarvel

DCMarvel

正在打电话回访吗?刚刚没接到.收到短信通知.希望DCloud能引以为戒.再接再厉吧!大家好才是真的好
2021-11-20 14:29
同名自定义

同名自定义

新,今天更新的hbx.新的基座,在我的安卓机和模拟器上,无限重启。只要随便点几下页面,就无反应,或者重启应用。概率100%.怎么搞。我现在切换回上个版本就没问题。
2021-11-20 14:28
MarkGo

MarkGo

>为了持续优化应用性能、质量及提供统计报表,基于DCloud引擎开发的App,在运行过程中会采集应用启动时间、异常错误日志这两方面的数据。

其实排除本次故障的原因,希望dcloud能开放这项服务时可选的而不是必选的;
类似的监控虽说用户侧无法实现,但起码给个选择给用户是否需要这个服务,而不是强制使用这个服务。
2021-11-20 14:24
DCMarvel

DCMarvel

回复 CharlieJohn :
经过我仔细研究阅读理解https://ask.dcloud.net.cn/article/36955 中的"数据采集说明" 此关闭不是.此关闭可能只是2中关闭运行中的统计,1和3的统计可能无法关闭
2021-11-20 13:34
CharlieJohn

CharlieJohn

回复 DCMarvel :
Dcloud 漏洞修复了,不然可以试试是不是关闭掉这个统计还崩溃不,按照官方说法就是统计的问题。
2021-11-20 13:30