一个在后端防止破解的方法,需要官方支持,请官方务必重视!
发布于 5 年前 作者 gang94 8729 次浏览 来自 问答
  • 需求的场景描述(希望解决的问题)

最近有发现有人破解了我们的小程序,并且已经在客户端开发了(后台用户提交的 formid 有好几个都是 the formId is a mock one)

虽然官方出了 “上传代码时保护代码” 的功能,但似乎还是挡不住 cracker 的洪水猛兽啊,所以思前想后,想到一个在后端来防止破解的方法,我们可以尽量把逻辑放到后端去。

方案

  • wx.request 在发送请求的时候,会自动在 header 里加上一个字段 {appid: appid},其中 appid 是小程序的 appid,开发者是无法再 request 里修改的,即使开发者在发送请求的时候自己在 header 里填了 appid 字段,也无效,必须是官方的底层库来填写这个字段。

  • 如此的话,后端可以在处理请求的时候解析appid,如果是自己的小程序,则放行,不是自己的小程序,还可以通过将 appid 记录下来,去查查是哪个小程序在复制,甚至还可以溯源到开发者(当然如果是测试号小程序就需要其他办法了),不过我觉得能做到这一步已经不错了。

  • 希望提供的能力

上述,请官方务必重视,这个功能实现起来应该挺简单的,想象官方的能力。

1 回复

使用限制

  • 网络请求的 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

回到顶部