2019-02-14 微信公众号openid 不唯一漏洞的应对方法

微信公众号 支付商户api 所有用到open_id的地方, 对open_id的验证性都存在严重的漏洞.

在所有能找到的微信文档中 都明确指出 open_id 是该用户在该公众号平台的唯一id

然而实际情况是 在所有以open_id作为参数的微信相关api 都可以在open_id的最后一位加 = 达到同样的效果

比如 获取用户信息api, 正常用户的open_id 是ojwt_0qHXeiGJnKg4so9baOBjNgs 我们可以输入 ojwt_0qHXeiGJnKg4so9baOBjNgs= 同样可以获取该用户信息
比如企业付款那几个付钱的api 可以用同样的方式 成功支付给用户.

ojwt_0qHXeiGJnKg4so9baOBjNgt ojwt_0qHXeiGJnKg4so9baOBjNgt=
除了 最后的 = 还可以把最后一位字母替换成 0-9 a-z 执行微信各种api

解决的办法 暂时是通过验证用户的union_id 还好用这些方法获得的open_id 都是同一个union_id

对于这个漏洞的应用 就不说了, 希望微信团队能早日解决

你可能感兴趣的:(2019-02-14 微信公众号openid 不唯一漏洞的应对方法)