小程序登录过程中任意手机号登录漏洞修复

项目场景:

微信小程序用户静默登录后点击授权手机号登录,存在安全问题,导致任意手机号进行登录。


问题描述

点击授权手机号的时候抓包
在这里插入图片描述

这里泄露了sessionKey、iv和encryptedData可以直接使用插件解密加密后实现任意用户登录

对应填好后点解密就可以看到明文然后修改手机号在点击加密就可以实现任意用户登录,把修改后的密文放回拦截的包中,放包实现任意登录。


原因分析:

1.微信提供授权手机号接口版本问题,实际上微信提供了新的接口,不使用sessionkey而是使用动态验证码获取手机号
2.企业方使用有误,后端获取sessionkey后不能把它一同发给前端再由前端发送给后端


解决方案:

1: 使用Redis存储每次的sessionKey,注意key要加上uuid作区分。

2: 换成新的授权方法,点击授权后微信会发一个动态码给前端,前端传给后端,后端根据动态码和APPID、APPSECRET向微信发请求获取用户信息。

解决后的反思:

  1. 使用Redis存储sessionkey时当时想的很简单,直接存入;leader说了句key是什么才明白key需要做区分。所以纸上学来终觉浅,得知此事要躬行!

  2. 可以看出就是因为微信提供的原始方法比较繁琐使用起来存在安全问题,它才提供新方法。作为后来者的眼光去看原方法确实很呆瓜,但这就是项目的演变过程,这种认识远比我用方法一去解决更重要!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

miss writer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值