最近做了一个小程序投票系统,思路是通过小程序获取手机号、后台解密的方式获取真实的用户身份,以防止刷票,结果发现还是被刷了,
黑客没有通过正常浏览小程序便获取到了用户登录的code,且后台正常解析出了openid、sessionKey,并且黑客没有通过小程序的按钮组件便提交了手机号的加密数据,后台也成功解密出了手机号,
后台发现黑客除了授权登录、绑定手机号和投票接口外,没有任何其他接口的请求记录,意味着黑客并没有通过正常的小程序访问便提交了数据参数,且后台可以通过微信接口正常解析,
以上情况是否意味着微信登录、授权获取手机号的相关腾讯安全机制已经被黑客破解?
我们这里也是一样,我们都是从微信服务器拿的密钥。
1.调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
2.调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key。
3.通过 bindgetphonenumber 事件回调获取到微信服务器返回的加密数据, 然后在第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。
然后发现被爆了,在同一个设备上。
你自己的问题吧没遇到过,wx.login 里面套 wx.getUserInfo 把wx.login返回的code 和 wx.getUserInfo 返回的数据一起发送到服务端
确实是这样 我之前做的一个投票功能
在没有进入小程序的情况下也被人拿到code
小程序后台没有统计到有那么多人进入
后来通过云函数,在云函数中调用实际的投票接口 (云函数中增加一个校验码,后端校验是否正确)
然后 他们就采用手机脚本的方式进来刷票了.............
wx也是不干人事 , wx.login这么轻易就被破解
希望小程序官方关注
黑客这里是怎么发现的?有什么特征
不信。