微信小程序安全需求基线

原创
2021/09/02 08:00
阅读数 334

微信小程序作为一款轻量级的应用,因其有着较强的灵活性,开发成本低,推广裂变快等特点,在很多领域得到广泛的应用。

本文基于小程序在电商领域的应用场景,将常见的安全问题进行分析汇总,整理成安全需求基线,以期不断地完善,然后在更多的业务场景下应用。


01、基础安全

  • 涉及数据敏感,采用私有化部署。

  • 通过负载均衡、内容分发等技术,保障业务高可用。

  • PS:比较大的图片要进行优化,同时避免出现比较大的图片带有随机参数(jpg?t=xx),一旦引流,所有图片请求回源,将导致带宽跑满现象。

02、重点功能    

  • 用户注册授权,添加隐私政策。

  • 文件上传,对上传文件的类型、大小、扩展名等信息进行校验,防止任意文件上传。

  • 用户自定义发布的内容需进行内容审核(例如:文本、图片、视频等),可调用公有云API 检测。

03、业务安全    

  • 防越权绕过,对用户权限进行认证。

    例如,遍历用户id导致敏感信息泄露,需对用户进行权限验证。

  • 防业务逻辑绕过,防止用户可以直接执行后面的流程,从而绕过某些阶段。

    例如:积分兑换的场景,将积分扣减和兑换拆分为两个接口,攻击者可直接执行兑换,不执行积分扣减。

  • 防数据篡改,重要业务数据需后端进行校验。

    例如:用户的游戏成绩直接篡改可用于游戏作弊,需增加签名认证,防止数据被篡改。

  • 防条件竞争绕过限制。

    例如:在做积分抽奖时,应考虑如何应对高并发攻击。

04、敏感信息保护

  • OpenID、unionid作为微信用户的唯一身份标示,禁止在业务系统的URL、返回参数等地方使用OpenID、unionid。

  • 禁止在小程序前端代码中,写入明文的AppId和secret、AccessKey及其他敏感配置信息。

  • 敏感数据前端展示,应进行脱敏处理,敏感数据包括但不仅限于姓名、手机号、地址等。

05、身份鉴别

在实现会话管理功能时,应同时满足以下几条要求:

(1)建立唯一的,具有一定复杂度的用户会话标识。
(2)通过OpenID或unionid识别用户身份,并建立账号绑定关系。
(3)应具有超时退出机制,超过一定空闲时间,会话标识失效。
(4)禁止使用不安全的鉴权方式,例如使用手机号鉴权,可能存在信息泄露的风险。

06、其他

  • 正式发布前,要关闭小程序调试模式。

  • 进行渗透测试,针对前端代码和小程序API进行安全检测。

  • 对小程序前端代码进行必要的保护措施,如代码加密、压缩、混淆、反调试等。

本文分享自微信公众号 - Bypass(Bypass--)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
1 收藏
0
分享
返回顶部
顶部