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

关于上周五部分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

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

石家庄前端

石家庄前端

今天刚更新了hbuilder,编译到微信开发者工具就出问题了,只剩下page标签
2021-11-22 15:15
萌大猫

萌大猫

我说上周五ios怎么闪退不能用了,一会又好了,解决很迅速,为dcloud点赞,继续信任
2021-11-22 14:21
wcomdex

wcomdex

回复 DCloud_heavensoft :
uniapp是否能推出一个app sdk开源且不和任何dcloud后台服务捆绑的社区版本?有意向帮某个密钥管理的开源项目实现一个app客户端(也作为一个开源项目),但是所有代码需要公开审计,uniapp 的app-sdk闭源这种做法限制了更进一步的推广和发展。
2021-11-22 13:37
DCloud_heavensoft

DCloud_heavensoft

回复 makeit :
会,正在讨论
2021-11-22 01:00
makeit

makeit

回复 DCloud_heavensoft :
以后会出 不和dcloud后台服务捆绑的方案吗?
2021-11-21 15:22
路滑

路滑

难怪,前2天好多用户反馈苹果闪退,我还以为是IOS15不兼容的问题,后面他们反馈多退几次,再进入又可以了
2021-11-21 15:10
DCloud_Android_ST

DCloud_Android_ST

回复 同名自定义 :
Android手机系统什么版本,是在nvue页面中重启的,还是没有固定页面 vue页面也会
2021-11-21 09:13
d***@qq.com

d***@qq.com

离线打包SDK呢更新了吗
2021-11-20 23:38
MarkGo

MarkGo

回复 DCloud_heavensoft :
@DCloud_heavensoft
对于周末还在加班,可能你们昨晚都通宵了吧? 这种责任感十分值得赞赏。
但是个人还是倾向于 开放选择。
有句老话叫“凡是只要可能出错,那就一定会出错”,所以用不上的功能对我而言宁愿不用,也不希望多0.00001的出错机会。

@1***@qq.com
没必要无脑喷的,你还想怎么样呢?
说真的这反应速度和问题披露比各大厂商好很多了吧?
今天是周末,而且这个问题是特定情况下才复现的(后端服务瘫痪了),没必要无脑喷吧!
而且你真的讨厌这个东西的话,应该自己开发一个比他好的取代他,而不是跑来喷这喷那,然后继续打开使用。
2021-11-20 16:04
言谷

言谷

回复 MarkGo :
支持可选!+!
APP上线了,希望是独立完全掌控的,用不用dcloud的服务,需要开发者自己来控制,而不是出现这些未知的状况。更何况很多是给甲方做项目的,出现这种事故,如何向甲方解释呢?
2021-11-20 15:46