小程序如何反编译,如何与后端实现请求安全
小程序上线一段时间,经常出现莫名用户注册,一开始非常可疑,后面越来越多,确定是黑客攻击。
接口都加了签名验证,但是黑客依然畅通无阻的注册访问,当时也是一脸懵逼。
经过反复确认,签名验证没有问题,唯一有问题的很可能是小程序出问题,其实际上小程序相当于前端页面,非常容易被反编译。
那问题来了,如何反编译?答案是:目前没有办法。微信官方应该要努力解决这个问题。
既然小程序代码被反编译无法改变,那么如何实现请求安全呢?答案是:接口签名验证;
接口签名验证是小程序发起一个请求,携带一个签名(字符串)及参数信息,服务端校验签名,如果一致则通过验证,返回接口数据;这里前后端都会有个共同的密钥,问题就出在小程序必须把密钥写在代码中,这是被攻击的根源;
如何防止黑客拿到密钥呢?目前唯一能解决的是通过云开发,将密钥放到云函数或云数据库中,这样即使黑客反编译了小程序代码,运行时也无法拿到密钥,这样也就无法发起请求。
哈哈…终于摆脱了黑客的骚挠了!