如果你曾使用自己的手机号在别人的设备/微信上登录小程序,这是可能会发生的事。

查看 125|回复 10
作者:chwii   
忘了前几天在哪里(似乎是本站,但是搜索了下没找到)看到帖子抱怨说,在一台登录了 非本人微信号 的设备,使用 自己的手机号及验证码 通过微信内建的手机号授权管理快速登录某个微信小程序之后,该微信号主人可以 免验证登录绑定了该手机号的小程序,并正常使用部分功能。  
当时看到这个帖子我也没有过多思考,甚至有点赞同其中一条回复 你把验证码提供给别人你活该 (原话忘记了,大致意思如此...)。今天无意中又想到了这个问题,于是在小红书上做了一些搜索,发现有不少人遇到过类似问题,最早可以追溯到 2024 年。也是搜索过后,我意识到了这个操作的严重性。  
于是我做了一个简单的验证,过程大致如下:  
  • 在非常用设备上登录微信小号
  • 打开支持“一键登录”的小程序(各家的叫法不同,目的是触发调用微信获取手机号的 API ),唤起微信官方的手机号授权界面
  • 微信弹出手机号选择框,默认显示当前 微信绑定号码
  • 选择下方的 使用其它号码 (另一个等价入口是:微信-发现-小程序-右上角小人头像-我的手机号码-添加手机号)
  • 在弹出的微信的 添加手机号 界面,输入我自己的手机号,并勾选 保存手机号,下次使用无需再次添加 ,完成后续的添加操作
  • 打开其它小程序,触发小程序的“一键登录”,微信授权弹窗出现了刚刚添加的手机号(这是预期结果,没有问题),选择该手机号后,在部分小程序中可以进入该手机号绑定的账户,并可正常使用部分功能  

    上述操作流程其实看起来完全符合预期,我相信该功能也是微信团队为多手机号用户考虑而开发的。  
    但真正的问题也恰恰在这里:这个绑定操作似乎并不只是一次性授权,更像是把某个手机号保存到了当前微信号下面。 也即,如果你在别人微信内添加并保存了自己的手机号,后面如果对方打开支持微信手机号授权登录的小程序,就可能在授权弹窗里继续选择你的手机号;而部分小程序如果直接把微信授权返回的手机号作为登录依据,就可能进入这个手机号绑定的账户。
    至此,我认为至少有三点值得注意:  
    首先,绑定的后果与用户的理解有一定偏差
    很多人看到短信验证码,潜意识会认为是“登录需要验证”。但实际情况是它可能并不是一次性登录,而是把手机号保存到了当前微信号下面,后续使用该微信号打开支持调用微信手机号授权快速登录的小程序时,仍然可以继续选择这个手机号。也就是说,用户以为自己只是完成了一次验证码登录,但实际可能是给当前微信号保存一把后续 登录部分支持手机号快速验证的小程序 的“钥匙”。
    其次,“钥匙”给出去后,你未必能自己收回来。
    至少我目前没有找到一个入口,可以反查这个手机号曾经被添加到哪些微信号里,也没有找到一个地方可以统一解绑。  
    目前似乎只能使用登录了操作绑定的微信号的设备,在上文提到的等价入口处做解绑,尽管你才是该手机号的拥有人。 但问题是,如果那个微信号不是你的,你怎么删?你甚至可能根本不记得自己曾经在哪台设备、哪个微信号上做过类似的绑定操作。
    最后,这与你在他人手机上使用短信验证登录 App 的后果截然不同
    如果你在他人手机上通过短信验证码登录自己账户,你通常还可以通过自己的设备在 App 的登录设备管理(比较成熟且重要的 App 基本都提供多设备登录管理功能)进行下线操作。但前文提到的小程序登录及使用操作,通过小程序对应的 App 未必能感知,也未必能限制。  
    通过小程序绑定了你手机号的他人的设备/微信号,不会出现在你手机号绑定的微信号的登录设备列表内。也即如果你忘记曾经在其他人的设备上做过类似的绑定操作,你甚至可能无法知道谁有权限通过小程序访问你的账户。
    免责声明:本文目的不是指责任何具体平台或小程序,而是提示一种可能的风险。由于我无法覆盖所有版本、所有小程序和所有场景,欢迎微信团队、小程序开发者或了解该机制的人补充更正。如果已有反查、解绑或风控入口,也希望能在回复内告知,谢谢!

    小程序, 手机号, 绑定

  • 106npo   
    这叫
    手机号快速验证组件
    还有个
    手机号实时验证组件
    开发者自行决定是要必须每次都要验证码
    hellhyzcy66   
    是的,退不出去,也无法更换
    hicdn   
    每过几个月,微信会要求重新短信验证,这个手机号就不能用了。
    chwii
    OP
      
    @106npo   
    在我验证的有限几个小程序内,几乎都没有要求再次输入验证码,所以我认为这个一次绑定持续有效的操作还是风险挺高的。
    另外,部分小程序似乎会“校验”类似于 openId 之类的微信账户唯一标识符,提示一个手机号只能被一个微信号绑定,从而导致登录失败,也看得出来各个厂商对一键登录有不同的业务处理和限制。
    chwii
    OP
      
    @hicdn   
    官方有类似的说明文档吗?如果有这个机制那可以稍微放心一点。但是如果近期真的操作过类似的绑定,对方可能还是可以在需要重新输入验证码之前通过小程序查看诸如地址、订单之类的信息
    106npo   
    @chwii 文档你搜我写的名字就有了. 开发者觉得无需每次验证能接受的场景,那就用便宜的.要每次都验证的场景那就用贵的
    chwii
    OP
      
    @106npo   
    这与开发者选择哪个组件做验证有关系,但并不是这个现象的主要矛盾。出于成本原因,如非特殊需求大家肯定会选择便宜的那一个。   
    我发这个帖子的目的其实是提醒自己也是提醒使用了这个绑定功能的人,因为没有醒目的解绑入口也好,因为开发者选择了“快速”而非“实时”验证也好,在你的手机号被绑定到了其他微信号的授权手机号列表后,他人可能可以在一段时间内使用小程序通过手机号授权登录你的账户
    wu67   
    微信(主号)日常使用(这台手机也没有登录切换过其他号), 怀疑也是在微信内通过其他手机号和验证码登陆某些服务时, 会把类似的凭据缓存下来.
    然后第三方应用(例如滴滴) 调用 微信登陆 的时候, 弹出的选择用户的那个微信弹窗里, 会有主号以外的账号存在...
    lw10645   
    确实有这个问题,我登过我朋友的烤匠账号后,后面有一键登录的小程序都会出现他的手机号选择
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部