微信小程序中登录 code 可以“伪造”?

2019-06-20 08:45:51 +08:00
 Snailzzz

昨天晚上 21 点 34 分左右,服务器涌入大量请求,这些请求的 UA 完全一致

  'user-agent' => 'Mozilla/5.0 (Linux; Android 6.0.1; C106 Build/ZAXCNFN5902606201S; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/57.0.2987.132 MQQBrowser/6.2 TBS/044304 Mobile Safari/537.36 MicroMessenger/6.6.7.1321(0x26060739) NetType/WIFI Language/zh_CN'

很奇怪,主要有一下几点疑问

以我的猜测,这些 Code 确实是正确的 Code,但是可能是从 Q 控 /X 议里面批量得到的,然后某些人收购 Code,通过这些 Code 批量请求

目前的解决方案,增加用户授权的操作,通过微信的 wx.getUserInfo 方法中 encryptedData 返回值判断。

这种方法增加了用户的操作,整体流程繁琐了,不知道大家有没有什么好的解决办法。

10671 次点击
所在节点    全球工单系统
35 条回复
johz
2019-06-20 09:40:51 +08:00
很正常,微信官方爬虫
hnch201414
2019-06-20 09:41:54 +08:00
加个验证码的操作吧~
dove1011
2019-06-20 10:00:59 +08:00
可能是微信官方爬虫
Felldeadbird
2019-06-20 10:14:24 +08:00
按楼主的说法,code 都验证过,UA 一致。应该是被羊毛党盯上了吧。 试下统计 UA,短时间统一台 UA 要求机器人识别。
Lax
2019-06-20 10:56:03 +08:00
既然是小程序,UA 全都是微信浏览器不是挺正常的吗?
z0ne
2019-06-20 13:18:42 +08:00
检查一下你的小程序调用的第三方 sdk 或者库的安全性。。

目前我的 sdk 都是放 github 上开源的,就是为了让开发者用的安心。 有的黑心 sdk 还是压缩混淆加密的,就是为了暗地里做些勾当。。

比如楼主这种情况,如果是第三方库,可以随时获取服务端的命令(获取 code )然后发送回服务端,这样对方就有了大量的 code~~
Snailzzz
2019-06-20 13:59:09 +08:00
@z0ne 这个不太可能 这些请求的最终得到的 OpenID 都是新的
z0ne
2019-06-20 14:36:21 +08:00
@Snailzzz 这就奇怪了,莫非是算法被逆向了 😂 保持关注
php01
2019-06-20 21:11:12 +08:00
我怀疑你的的 code 或者 openid 下发到客户端了。又或者是员工测试暴露了,或者是数据库已经被人拿了
Snailzzz
2019-06-20 22:24:51 +08:00
@php01 这种低级的错误不可能的,已经报告官方了,他们回复的是安全相关的同学在排查了
AbrahamGreyson
2019-07-16 03:25:35 +08:00
@Snailzzz 后续怎么样了,十分关注这件事,最终是如何防刷的。
Snailzzz
2019-07-26 20:17:59 +08:00
@AbrahamGreyson 最终我们加上了授权登录 可以验证一下 官方态度一直很消极 最终也没有提出解决办法
mrvv
2019-08-17 20:15:25 +08:00
找到原因了吗,我很想知道伪造 code 是否存在
Snailzzz
2019-08-18 06:35:07 +08:00
@mrvv 确实是存在的 应该是反编译出微信的 xy 或者通过 hook 实现的
mrvv
2019-08-18 21:17:21 +08:00
那你知不知道 code 产生的请求方法,按理说一个真实的微信才会产生一个真实的 code 啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/575679

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX