微程序作为轻量级应用,由于具有较强的灵活性、开发成本低、裂变推进快等特点,在许多领域得到了广泛的应用。
本文基于小程序在电子商务领域的应用场景,分析总结了常见的安全问题,整理成安全需求基线,以期不断完善,然后在更多的业务场景中应用。
01、基础安全
对数据敏感,采用私有化引进。
通过负载均衡、内容分发等技术确保业务的高可用性。
PS :对较大的图像进行优化,并且对较大的图像进行随机参数(jpg? t=xx ) ),一旦引流,所有图像都会回到源,导致频带变满的现象。
02、重点功能
用户注册批准,添加隐私策略。
上传文件,检查要上传的文件的类型、大小、扩展名等信息,防止上传任意文件。
要定制用户发布的内容,需要对内容进行审核。 例如,文本、图像、视频等。 可以调用公共云API检查。
03、业务安全
防止越权的迂回,认证用户权限。
例如,遍历用户id会泄露敏感信息,需要用户的权限验证。
防止业务逻辑绕过,使用户可以直接执行以下流程,从而绕过特定阶段:
例如,在积分交换场景中,将积分扣除和交换划分为两个接口,攻击者可以直接执行交换而不执行积分扣除。
为了防止数据被篡改,重要的业务数据需要在后端检查。
例如,用户的游戏成绩的直接篡改可以用于游戏非法,需要添加签名认证,防止数据的篡改。
防止条件竞争绕过限制。
例如,进行积分抽签时,需要考虑如何应对高并发攻击。
04、敏感信息保护
OpenID、unionid作为微信用户的唯一id标识,禁止在业务系统的URL、返回参数等中使用OpenID、unionid。
禁止将明文AppId和secret、AccessKey及其他敏感配置信息写入小程序的前端代码。
机密数据前端的展示应进行脱敏处理。 机密数据包括但不限于姓名、移动电话号码、地址等。
05、身份鉴别
实施会话管理功能时,必须同时满足以下要求:
(1)建立唯一的、具有一定复杂度的用户会话id。
)用OpenID或unionid标识用户并建立帐户绑定关系。
)3)具有超时退出机制。 如果超过一定的空闲时间,则会话id无效。
)4)禁止使用不安全的认证方式,如使用移动电话号码认证,可能存在信息泄露的风险。
06、其他
在正式发布之前,关闭小程序的调试模式。
进行渗透测试,对前端代码和小程序API进行安全检查。
对小程序的前端代码采取必要的保护措施,包括代码加密、压缩、模糊化和反向调试。