- 需求的场景描述(希望解决的问题)
最近有发现有人破解了我们的小程序,并且已经在客户端开发了(后台用户提交的 formid 有好几个都是 the formId is a mock one)
虽然官方出了 “上传代码时保护代码” 的功能,但似乎还是挡不住 cracker 的洪水猛兽啊,所以思前想后,想到一个在后端来防止破解的方法,我们可以尽量把逻辑放到后端去。
方案
wx.request 在发送请求的时候,会自动在 header 里加上一个字段 {appid: appid},其中 appid 是小程序的 appid,开发者是无法再 request 里修改的,即使开发者在发送请求的时候自己在 header 里填了 appid 字段,也无效,必须是官方的底层库来填写这个字段。
如此的话,后端可以在处理请求的时候解析appid,如果是自己的小程序,则放行,不是自己的小程序,还可以通过将 appid 记录下来,去查查是哪个小程序在复制,甚至还可以溯源到开发者(当然如果是测试号小程序就需要其他办法了),不过我觉得能做到这一步已经不错了。
- 希望提供的能力
上述,请官方务必重视,这个功能实现起来应该挺简单的,想象官方的能力。
使用限制
网络请求的
referer
header 不可设置。其格式固定为https://servicewechat.com/{appid}/{version}/page-frame.html
,其中{appid}
为小程序的 appid,{version}
为小程序的版本号,版本号为0
表示为开发版、体验版以及审核版本,版本号为devtools
表示为开发者工具,其余为正式版本;
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html