微信小程序安全浅析

引言

近期微信小程序重磅发布,在互联网界掀起不小的波澜,已有许多公司发布了自己的小程序,涉及不同的行业领域。大家在体验小程序用完即走便利的同时,是否对小程序的安全性还存有疑虑。白泽日前对微信小程序进行初步的安全技术分析,在此整理出来抛砖引玉,如有描述不当的地方,欢迎纠正,轻拍。

本文中,大白将从小程序的框架、功能模块安全、账户使用安全方面进行剖析,希望能为各位泽友带来不一样的认知。

一、小程序框架概述

在第一部分小程序框架概述中,将介绍小程序抽象框架、小程序调用框架和小程序初始化流程。下面让大白来逐一介绍。

1、小程序抽象框架

这里写图片描述

1.1视图层

包含WXML、WXSS和页面视图组件。

WXML是一种类似XML格式的语言,支持数据绑定、条件渲染、列表渲染、自定义模板、事件回调和外部引用;

WXSS是一种类似CSS格式的语言,用于描述WXML的组件样式,决定WXML中的组件如何显示;

组件是框架提供的一系列基础模块,是视图层的基本组成单元,包含表单组件、导航、地图、媒体组件等常用元素,如图1说明当前小程序支持的的视图组件;

这里写图片描述
图1 小程序视图组件

1.2逻辑接口

包含小程序注册、页面注册和功能API。程序注册代码位于app.js,页面框架注册位于app.json,如图2所示为官方示例小程序的app.js和app.json。功能API当前包含网络请求功能、文件处理功能、数据存储功能、微信的开放接口功能等,详见微信官方说明,如图3所示。

这里写图片描述
图2 小程序注册代码示例

这里写图片描述
图3 小程序功能API示例

1.3 原生实现层

承载小程序依赖的具体操作,由微信APP支撑实现,包括tbs内核、JSAPI框架、初始化小程序配置、功能接口实现等,实现代码主要位于com.tencent.mm.plugin.appbrand包,关联功能有微信平台原有的数据存储能力、二维码能力、网络请求能力、支付能力等。

2、小程序调用框架

这里写图片描述
图4 微信小程序调用框架简图

上图主要说明小程序功能逻辑框架流程,由顶层的小程序实现代码(类似js),到微信底层支撑实现模块的调用流程,通过微信JSAPI框架支撑页面到本地实现的桥接调用。小程序缓存数据存放在Storage中,对应文件为DB数据库;小程序文件操作通过Hash机制进行映射,并存储在外部存储空间。

承载小程序展示的组件有.plugin.appbrand.ui.AppBrandUI、.plugin.appbrand.ui.AppBrandUI1、.plugin.appbrand.ui.AppBrandUI2、.plugin.appbrand.ui.AppBrandUI3、.plugin.appbrand.ui.AppBrandUI4共五个组件,五个组件实现逻辑相同,AppBrandUI1- AppBrandUI4继承自AppBrandUI,图5为每个承载小程序的Android组件定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值