小程序大家已经再熟悉不过了,就是一种在移动操作系统中运行的轻量级应用程序,小程序发展这么多年来,是中国 IT 行业里为数不多的能够真正影响到普通程序员的创新成果。
当然随着小程序的流行,小程序的各个方面都是开发者讨论的热点,其中免不掉说到安全,因为安全已经成为了一个非常重要的问题。在这篇文章中,也准备探讨下小程序的安全架构,以了解小程序如何做到安全保障。
先说说小程序自身的安全架构,小程序的安全架构由应用程序层、客户端层、服务层和数据存储层多个层次组成,具体来讲:
1、应用程序层
这是小程序的前端,也是用户最经常接触到的部分。应用程序层主要包括小程序的用户界面和功能,以及与用户交互的应用程序代码。更为直观的说,就是用户直接使用到小程序的部分。
2、客户端层
客户端层是小程序运行的平台,包括操作系统、应用程序环境和安全系统,客户端层提供了小程序需要的资源和安全特性,包括内存管理、文件系统、网络通信和设备访问等。
3、服务端层
服务端层是小程序的后端,主要包括小程序的服务器、数据库和应用程序接口。服务端层提供了小程序需要的数据和服务,以及用于身份验证和授权的安全特性。
4、数据存储层
数据存储层是小程序的数据存储和管理系统,包括数据库、缓存和存储服务。数据存储层提供了小程序需要的数据存储和访问特性,并提供数据隐私和保护的安全特性。
小程序具有安全系数高、隐私安全好、身份验证严格等安全特性,这也是小程序为何能够广被开发者和用户欢迎的缘由之一,特别是小程序基本上都运行在微信、支付宝、百度、抖音等大企业的超级 App 中,至少开发者和用户对于这部分企业还是有较高的信任度。
如果分点来进行概括的话,小程序安全特性可以分为以下6点:
当然,小程序在安全方面也不是金刚不坏之身,尽管小程序具有多层安全架构和安全特性,但也确确实实面临一些安全挑战,包括:
同时,在小程序技术瓶颈的持续突破下,小程序有了一个更加安全的选择:在自身 App 中搭建一套小程序框架。目前,很多企业都搭建了自身 App 的小程序框架,效果也确实不错,例如 FinClip ,这种企业自己部署的小程序架构能够在安全保障上有更加明显的效果。
小程序 SDK 保证了业务应用所需要的运行环境,宿主应用如果想与小程序进行数据交互,必须要通过 SDK 主动暴露的接口来启动,此外基于沙箱环境,也能保证小程序的网络通信不被干扰或拦截。
同时,小程序容器技术天然的安全隔离能力,通过构建一个封闭的软件环境,隔离了它所在的“宿主”的资源包括内存、文件系统、网络等等的访问权限。运行在这个封闭环境中的进程,其代码不受信任,进程不能因为其自身的稳定性导致沙箱的崩溃从而影响宿主系统,进程也无法突破沙箱的安全管控以读写宿主系统的资源。
小程序的安全架构和安全特性是保护小程序安全的关键。小程序需要实现加密和身份验证、应用程序沙盒、访问控制和权限限制、安全测试和漏洞管理、审核和合规、风险评估和管理等技术来确保小程序的安全性。
通过小程序容器技术还能实现安全防护措施的升级,将小程序应用生态、移动设备插件生态、移动设备有机的“粘合”在一起。