背景和问题:小程序会做运营活动,拉取新用户获得奖励,但被刷子批量注册用户(小程序注册时不想让用户获取手机号验证码)。
如何察觉: 通过埋点发现。正常用户使用小程序会有对应的埋点记录,但这些批量的用户没有触发小程序端内部埋点,只有后端注册时的单一埋点被触发。
具体描述:小程序注册步骤是
1、wx.login --> 跟后端交互 --> 获取得到用户的微信信息,
2、同上 --> 然后获取用户的手机号
3、自己的后端处理、注册用户
这样的流程出现的问题是:有刷子能以正常的方式获取到有效的code,并和后端正常通信处理、获取到微信信息以及手机号,然后模拟这种方式批量注册新用户。
基于以上情况,我们在上面的【步骤1】和【步骤2】中向后端发送时增加了一个字段A,使用云函数做加密功能,加密后的字符串作为字段A的值返回给后端解密,后端解密成功代表该用户正常调用了云函数 (这样做的原因是我理解云函数和小程序唯一绑定,只能对应小程序调用,并且有调用权限限制,即 Cloud.getWXContext() 获取到的SOURCE调用来源,限制为wx_client,只有微信小程序调用才可触发云函数)
// 这是我云函数的部分代码 代码段01
const log = cloud.logger()
const wxContext = cloud.getWXContext()
if (
wxContext.SOURCE !== 'wx_client'|| wxContext.ENV === 'local'
) {
log.error(wxContext)
return ’error‘
}
log.info(wxCont)
...
但是通过对云函数进行了日志记录,发现刷子还是能正常调用云函数,获取到云函数返回的数据,继续批量请求后端注册接口,并成功注册。
想要被解答的疑问:想知道云函数是否只能被对应小程序唯一绑定并且调用,【代码段01】我已经限制了调用端只能为小程序,并链路只有单一一次,为什么还是有第三方能成功脱离小程序客户端调用我的云函数?

1、云函数不可破。
2、对方只是跳过了你小程序端的埋点,以正常身份执行到了云函数这一步,去排查吧。
点1:我们不太熟悉云函数调用机制,不清楚到底是否存在模仿参数成功调用云函数的问题(有点点怀疑 云函数不可破 这个概念😅);
点2:我们也想办法去论证、调查过第三方是怎么能以正常身份执行到了云函数这一步,但没有明确的结果。因此才来社区寻求解答,希望能向你们请教,确定问题,找到解决方法, 如果有思路的话,希望不吝赐教🙏🏻
大兄弟,你这个后来怎么解决了?有什么方案可以交流一下。
应该是调用方模拟了请求头参数