当前位置:首页 > 微信公众号开发

如何更加安全的微信开发

2020-06-30

云开发系统架构涉及到微信、腾讯云和开发者三方,但腾讯云在底层打通了微信自研网络和云网络,以及开发者在腾讯云上已有的服务,在这个基础上构建了一体化的云端网络,开发者可以方便的将云开发结合到已有的服务里。



为了保障云开发后台架构以及稳定性,云开发设计了容灾架构。小程序·云开发后台服务采用多 IDC 多园区部署,做到了跨园区的容灾,每个园区都冗余一定的服务能力,当某个园区发生故障时,请求会自动路由到另外的两个园区,由另外两个园区继续提供服务,不会对业务产生影响。

而在网络层面,微信对用户采取就近接入原则,提高了接入质量。在这个基础上,借助 newDNS 实现精细和实时的引导,通过识别用户客户端版本、网络环境等数据,下发 IP 列表,引导用户接入到最合适的接入点,进一步提高用户的接入质量。



在安全性方面,云开发通过全链路的票据系统来保障整个请求链路的安全。如下图所示,首先是用户请求从微信客户端到微信后台服务这部分,云开发请求借助了微信底层的私有协议 mmtls 和微信后台服务进行通信,当业务层数据加上 mmtls 后,即可做到防窃听、防篡改、防重放、防伪装等安全措施。

而当微信后台收到云开发请求后,会先校验用户的身份,并通过全程票据来保障数据的安全性。具体是如何保障的呢?用户登录后,后台会下发一个票据给客户端,客户端每次请求均会带上票据。在后台服务的整个处理链条中,所有对核心数据服务的访问,都会被校验票据是否合法,如若为非法请求则会被拒绝,以此保障用户隐私数据,只能通过用户的客户端发起的操作来进行访问。

由于云开放的整个链路都是经过鉴权的,云开发在执行云函数时,后台会自动校验请求票据,开发者可以无缝的使用微信的开放能力,无需再通过常规的 OAuth 授权并自行维护 AccessToken。而“小程序·云开发”对数据访问链路做的专门优化,也促使小程序更快的数据加载速度。



此外,对于小程序开发者普遍关心的性能问题,微信小程序团队相关负责人也在小程序·云开发技术峰会上进行了深入解读。以云函数为例,执行云函数需要经过创建容器、下载代码、部署执行三个部分。由于容器的启动是一个很费时的操作,所以通过函数实例复用、容器实例预创建,热点代码缓存等优化,将云函数容器的启动时间从秒级变成了毫秒级。而在容器冷启动的过程中,开发者可以做代码精简(缩短下载时间)、资源复用(缩短执行时间)、公共剥离(增加缓存效果)、保持活跃(避免资源回收)等工作。

同时,为了提高云函数的性能,云开发也在通信、业务和网络层做了一些优化。在通信层,改造私有协议,优化长连复用;在业务层,分不同段请求,优化内部调用链路;在网络层,压缩系统间网络开销,从纯异步的方式改造成多段同步的方式。

正因如此,自今年以来云函数请求性能已经提升了 60%。据了解,小程序端一次云函数的请求,在测试环境中也已降到 140 毫秒,其中的相关优化也将在下一个微信版本中进行发布。

免费获取报价

  • 29923329

  • 杭州市丰庆路498号北软智慧科创大厦203

  • 0571-85815193

  • pady@1t2.cn

网站地图 版权所有 © 2008-2021 杭州派迪科技有限公司  Copyright © 2008-2020  www.hzpady.com  All Rights Reserved    浙ICP备14029905号-1     公安备案:33010802008411    软著登字第3457658号