mPaas App上线检查

一 背景

随着越来越多的金融行业基于mPaas搭建并上线新的App,App的上线质量也成为各个客户关注的重点。上线前检测哪些项目,如何检测,检测数据指标包括哪些成为我们思考的主要方向。借着上次去XX农信客户去做线上功能检测,加上之前多个mPaas历史项目的踩过的坑,将App上线前mPaas相关检测内容整理沉淀如下。

二 检测方向

1. 安全性

1.1 RPC是否开启国密加密

对应金融性质的App来说,数据通信安全至关重要,mPaas已经支持 ECC、RSA 和国密(SM2)三种方式,

在金融行业App内建议开启加密配置为SM2国密加密,满足行业监管要求。配置可以参考文档:链接

1.2 离线包是否开启验签

mPaas App上线检查

为了保证下发到本地离线包的安全性,mPaas提供了离线包验签机制,保证了离线包的安全性。整体示意图如上所示,用户设置流程如下:

1. 开发者配置好一对公私钥,私钥放在服务端用于对离线包签名,公钥放在客户端,用于对签名对验证。

2. 在离线包发布平台,如果配置了签名私钥,平台下发的 amr 文件就会带上签名信息(通过私钥对离线包的 hash 值加密后得到的密文)。

3. 客户端在拿到 amr 包并解压后,客户端会使用在项目中预置的公钥进行签名的验证(解密上一步的密文得到一个 hash 值,同时本地计算离线包的 hash 值,判断两者是否相同),如果相同则通过验证。

4. 如果签名校验失败,则删除离线包走fallback地址。

通过离线包的验签机制,可以达到以下的目的:

1. 保证了离线包的内容完整,解决解压异常,读取异常下的正常显示

2. 保证了离线包的来源正确,不被本地恶意篡改

1.3 userId信息是否设置正确

因为userId会被后续用到很多地方,比如推送,白名单。所以一般建议选择服务端的userId字段作为存储字段,方便后续和服务端做userId字段同步,不建议存储个人手机号或者身份证等个人信息作为userId。

1.4 埋点信息是否包含敏感信息,比如交易单号

考虑到埋点的量级很大,所以mPaas的埋点默认本地是没有做数据加密的,所以埋点信息不建议包含敏感字段,防止由于埋点导致信息泄漏。敏感字段建议走RPC的数据通道上报,保证数据安全。如果有埋点埋敏感字段的诉求,需要主动开启埋点的本地加密配置。

1.5 隐私权限配置

由于现在监管机构对隐私权限管控比较严格,mPaas针对权限管控做了对应的接入方案。需要需要确保上线前隐私权限相关配置已经正常接入。

2. 稳定性

2.1 验证在Android4.X版本的是否可以正常使用

mPaas最低支持Android4.3版本以上,所以发布前需要验证下低版本Android设备的可用性,遇到比较多的是在Android4.X设备上由于多dex加载导致的类找不到导致的安装闪退问题。

2.2 iOS符号表是否正常上传

发布前需要确保iOS的符号表已经上传到mPaas后台,方便后台反解闪退信息。

2.3 热修复模块是否接入并且验证通过

发布前需要确保热修复模块的正常接入以及验证通过,保证上线有针对Native模块的热修复能力,保证异常场景下的修复能力。

2.4 离线包Fallback域名确认

确认Fallback域名是否是外网可访问的地址,遇到过发布后下发的还是内网地址的case

2.5 离线包模块接入CDN

上线前做好容量评估,默认mPaas的离线包是存储在OSS内的,但是一般建议针对离线包模块接入CDN,通过CDN的缓存功能解决因为离线包下载导致带宽打满的风险,同时相对于OSS存储来说,CDN的费用更低。接入示意图如下:

mPaas App上线检查


2.6 RPC核心链路接口压测

上线前需要对App核心链路的RPC接口做性能压测,获取接口性能瓶颈,可以用做后续的限流值的设定参考。同时需要针对RPC限流场景做演练,防止上线限流后客户端出现各种异常。

2.7 发布更新功能可用

上线前需要验证发布apk功能可用,包括发布更新的强制更新功能,保证在极端场景下,需要强制升级使用。

3. 性能体验

3.1 离线包离线功能是否正常生效

确保离线包的离线功能正常使用,防止由于离线包各种配置问题导致离线功能不生效。

3.2 UC内核是否正常接入

确保UC内核正确配置接入,主要解决系统Webview下的各种兼容性问题。同时UC提供了很好的稳定性,比系统webview更稳定。

3.3 核心链路离线包是否预制

在发布前,需要预制核心链路离线包,保证核心链路在极端异常场景下仍然可以打开。


上一篇:初识SqlLite ---.net连接数据库


下一篇:mPaas国密改造—MGS报文国密加密