1、说明
1.1 小程序应用架构说明
微信小程序作为当前企业的主流应用之一。相比于APP类应用,有着轻量、快速、便利等诸多优势。不需要用户安装,微信打开即用特点。整个架构示意图如下:
image.png
微信小程序应用是在微信公众平台下发布使用,调用企业API服务均需要通过外网访问。由此带来很多API服务安全问题。黄牛党可借此API服务违规调用破坏企业业务生态,获取小程序相关业务资料,给企业带来经济损失。如何防止恶意攻击,构建稳健企业应用。成为了每一个开发设计小程序者的思考放点
1.2 获取方式
- 抓包获取正常应用请求网络中的资源
- 反编译前端应用资源包获取源码
1.3 破坏特点
黄牛黑客为了能够顺利获取资源信息,防止被阻拦在攻击过程中会有以下特点:
- 动态ip
- 模拟正常用户工具,比如:浏览器信息等
- 携带身份识别的正常业务参数
- 低频高频调用相结合
1.4 防止攻击策略方式
image.png2、网络服务层面
(1) 小程序后端云服务可以引进阿里云产品:waf访火墙
对访问流量请求进行防护,涵盖常见的防护策略:Bot防护
,CC安全防护
等,除此还可以制定自己的防护策略。
3、应用服务层
(1)API接口加增加签名认证Sign,小程序调用API需要验证参数。
-
应用场景:
防止接口随意篡改参数,改动参数都必须做新的Sign计算。否则接口调用不通过 -
实现思路:
小程序端请求api,通过对请求参数根据特殊算法处理得到参数sign
,一起传输到api服务端,服务端再次通过接收到的参数进行特殊算法处理得到服务器端sign
,比较小程序端请求sign
是否与服务器生成的sign
相同,相同则请求放行做进行正常业务,不相同则为非法请求,返回用户请求不法。
(2)API接口增加身份认证Token
-
应用场景:
防止未登录即可调用接口,同时隐藏身份敏感信息接口传输,只能对当前登录人资源进行访问,无法获取他人资源。api 应用通过Token获取用户身份信息,进行业务处理。 -
实现思维:
登录成功之后,获取用户身份Token, 后续业务请求时候,用户信息不在通过接口传输,通过Token校验用户是否有效,获取用户信息处理后续业务。
(3)关键敏感字段做加密传输
-
应用场景:
防止黑客轻易获取业务参数的含义,从而模拟制造数据攻击服务应用。 -
实现方式:
对部分敏感文字进行加密处理, 如:手机号
、unionId
4、小程序端
为防止小程序源码被爬虫获取,小程序发布时需要对源码做混淆处理。这样获取到源码也无法正常解读。
网友评论