收藏
回答

一个在后端防止破解的方法,需要官方支持,请官方务必重视!

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 需求 wx.request 工具 7.0 2.4

- 需求的场景描述(希望解决的问题)


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


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


方案

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

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



- 希望提供的能力


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


回答关注问题邀请回答
收藏

1 个回答

  • 卢霄霄
    卢霄霄
    2019-01-13

    使用限制

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

    2019-01-13
    有用
    回复 3
    • TTL
      TTL
      2019-01-13

      赞,谢谢大神,周末还不休息啊,哈哈哈哈

      2019-01-13
      回复
    • 卢霄霄
      卢霄霄
      2019-01-13回复TTL

      哈哈哈 你也没休息啊~ 我在玩游戏,顺便开着社区

      2019-01-13
      回复
    • TTL
      TTL
      2019-01-13回复卢霄霄

      嗯啊,哈哈哈

      2019-01-13
      回复
登录 后发表内容