评论

小程序如何反编译,如何与后端实现请求安全

小程序如何反编译,如何与后端实现请求安全

小程序上线一段时间,经常出现莫名用户注册,一开始非常可疑,后面越来越多,确定是黑客攻击。

接口都加了签名验证,但是黑客依然畅通无阻的注册访问,当时也是一脸懵逼。

经过反复确认,签名验证没有问题,唯一有问题的很可能是小程序出问题,其实际上小程序相当于前端页面,非常容易被反编译。

那问题来了,如何反编译?答案是:目前没有办法。微信官方应该要努力解决这个问题。

既然小程序代码被反编译无法改变,那么如何实现请求安全呢?答案是:接口签名验证;

接口签名验证是小程序发起一个请求,携带一个签名(字符串)及参数信息,服务端校验签名,如果一致则通过验证,返回接口数据;这里前后端都会有个共同的密钥,问题就出在小程序必须把密钥写在代码中,这是被攻击的根源;

如何防止黑客拿到密钥呢?目前唯一能解决的是通过云开发,将密钥放到云函数或云数据库中,这样即使黑客反编译了小程序代码,运行时也无法拿到密钥,这样也就无法发起请求。

哈哈...终于摆脱了黑客的骚挠了!

点赞 2
收藏
评论

4 个评论

  • dreamhunter
    dreamhunter
    2021-08-10

    成本也上来了,云开发确实是解决安全性的一个好办法

    2021-08-10
    赞同 2
    回复 1
    • Ken
      Ken
      2021-08-11
      嗯,目前有个免费套餐,量大需要申请套餐,确实需要花钱
      2021-08-11
      回复
  • elontian田凌翔
    elontian田凌翔
    2021-08-15

    微信小程序类似web app,从安全性上来说和H5类似。所以单从小程序端来解决安全性问题是几乎没有很好的办法。通过将密钥放到云函数的模式确实能提升黑客的攻击成本,但是这种模式还是存在安全风险,比如只要获取到返回的密钥即可破解。而且业务上也需要进行一些流程改造增加一些安全成本投入。

    最推荐的方式是使用微信云托管,利用微信私有链路的能力,实时保障通信安全。对小程序业务来说还是保持发送http请求不变,http请求会自动转译成微信的私有协议,所有的通信数据都会进行实时加密,通过安全的链路传到后端服务中。防止通信数据被爬被窃取、防DDoS攻击、防DNS劫持。

    云托管:https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/basic/intro

    2021-08-15
    赞同 2
    回复 1
    • elontian田凌翔
      elontian田凌翔
      2021-08-15
      补充一下,这种方式后端服务甚至都可以不用开公网入口
      2021-08-15
      回复
  • 迪克
    迪克
    2022-03-01


    云函数获取公钥 能通过抓包抓到吗?


    2022-03-01
    赞同
    回复
  • 理想
    理想
    发表于移动端
    2021-08-15
    大概怎么玩 方便说个123吗? 小白很苦恼。
    2021-08-15
    赞同
    回复 1
    • Ken
      Ken
      2021-11-12
      开通云开发,从云函数中拿到密钥,这样黑客即使反编译小程序,也无法从云函数拿到密钥。
      2021-11-12
      回复
登录 后发表内容