有人关注过应用试客这个微信公众号吗?他有个应用叫试客小兵,他获取我微信信息的方式很奇怪,流程是如下:
’关注他们的公众号’ - ‘获取APP(试客小兵)下载地址‘ - ’下载‘ - ‘运行APP’ 一运行这个app,app就自动获取了我的微信信息(昵称,头像,openid)
这个应用是怎么获取我的信息的?
目前知道微信公众号可以获取我的微信资料,但APP是怎么知道我当前登陆的哪个微信用户,并获取相应用户的信息的?
1
kacong 2015-03-17 11:52:54 +08:00
url referral 里面难道有相关的信息的蛛丝被他们解读了?
|
2
wdd2007 2015-03-17 11:59:19 +08:00
1、微信公众号可以获取你的微信资料;
2、网页和 App 是可以建立通信的; 3、所以是网页把你的信息传给了 App。 |
3
frankzeng 2015-03-17 12:00:52 +08:00
是网页传过去的吧
|
4
abelyao 2015-03-17 12:04:51 +08:00
我就好奇楼主用的是 iOS 吗?APP 是在 App Store 下载的吗?
|
5
ETiV 2015-03-17 12:11:49 +08:00 via iPhone
如果是网页部分实现的,LZ可以试试做一次中间人,看看各种http请求。
|
6
b821025551b 2015-03-17 12:32:46 +08:00
广告,各位block吧
|
7
qiayue 2015-03-17 12:39:51 +08:00
我的想法是,你打开下载页面的时候,网页获取到了你的 iOS 设备的某个唯一码,并且与你的微信对应那个公众号的 opneid 相关联。
安装好应用后,应用也去获取你的这个唯一码,就能够跟你的微信绑定了 |
8
simman 2015-03-17 12:42:37 +08:00
1、下载完应用以后是否需要再次使用微信登陆?
2、请问是IOS还是Android应用? ======= 1、如果下载完应用以后还需要再次使用微信登陆,那么当然可以通过SDK拿到相关的信息。 2、下载应用的时候通过记录Session,或者其他的表示记录此台设备登陆的微信信息。然后打开应用就可以在服务器端拿到信息了。 |
9
benter OP @b821025551b 不是广告。
|
12
benter OP @qiayue 微信JS SDK没有提供相应获取设备的API,另外据我所知,网页通过User Agent 获取到的设备信息不包含设备唯一码,网页貌似也获取不到什么设备唯一码。
|
14
touzi 2015-03-17 14:14:01 +08:00 via iPhone
关注的时候就获取了头像用户名,然后你跳转App Store时有小尾巴标记就可以了
|
15
abelyao 2015-03-17 14:15:20 +08:00 via iPhone
@benter 网页获取你的 IP 地址以及 UserAgent 等识别信息,然后 APP 中也获取这些,很大程度上就可以匹配到一起了
|
16
abelyao 2015-03-17 14:17:59 +08:00 via iPhone
@benter 使用私有函数的话玩法就多咯,甚至是根据你的 openid 动态生成一个 app 给你都可以
|
17
chairuosen 2015-03-17 14:21:46 +08:00
那个app可能不同url会埋不同初始信息?埋了你的fake_id,再去自己库里取fake_id对应信息就行
|
18
benter OP @abelyao 你说的第一种很大概率可以匹配,是OK的,其实还是一个概率问题,比如同一局域网3台5s,系统也相同,就出现混乱了,因为网页获取的信息都是一样的,第二种,就是不同的用户打不同的ipa,就能完全匹配了,另外还想到一种,网页写cookies,在微信app的cookies里,然后他的应用读cookies,这个要绕过沙盒,还没找到方法获取到其他应用的cookies。
|
19
b821025551b 2015-03-17 17:52:34 +08:00
@benter 好吧,我错了。刚刚认真看了一下,是2楼所说的那种方法。你看这个微信号跳转的地址:
http://www.weadds.com/weixin/test/regist.html?openid=ov4w-s81j8aowzYTBO42J5cmkJa8@259 看见了吧,那个openid就是你关注微信号时获取的,以及你的头像、昵称等信息 |
20
b821025551b 2015-03-17 17:55:01 +08:00
@benter 如果不是根据他正常的流程走的话,也就不跳我所说的那个地址,会登录失败的
|
21
alex321 2015-03-17 18:09:16 +08:00
关注的时候可以通过后台拉取用户资料,前提是服务号,并通过高级认证。
这个获取用户资料的操作我两个公众号平台上几十个供公众号都在用了,而非采用的网页跳转授权的形式。 |
22
benter OP @b821025551b 你关注的应该不是我说的那一个。你关注的应该是安卓类型的哦,我疑惑的是ios平台上的那个
|
23
benter OP @alex321 你说的是公众号获取用户资料,这一步肯定是可以的。现在是iOS应用要获取用户资料,比如说我后台有50个人的openid个人资料什么的,应用第一次启动时怎么知道要获取哪个openid用户的资料。app可以拿到设备唯一标识,后台有openid,现在就要把这两个一对一关联上的问题了,要么应用能得到当前登录的用户的openid,要么微信公众号能得到设备唯一标识。
|
24
alex321 2015-03-17 20:23:30 +08:00
获取APP(试客小兵)下载地址。
我怀疑这个是关键。你提到未通过 app store 发布这个试客小兵,可能使用了苹果的企业证书签名,特征就是安装的时候会有一个弹框提示是否安装什么企业颁发签名的应用证书之类的,这种发行途径可以自行生成近乎无限的 iOS app 安装 ipk 文件;这个是我后续猜测的基础。 我有理由相信这个下载地址可能是针对你的 openId 定制的下载地址,或者说你下载的时候是经过对方服务器后台即时自动打包了一个包含你的 openId 信息在内的 app,当你启动的时候自然就能匹配到你的信息。简单的验证方式是另外找一个微信账号关注然后下载安装包,两个包的指纹等信息。 |
25
paradoxs 2015-03-17 21:51:27 +08:00
下载地址是在微信内部生成的。。 获得这些信息,合情合理。
|
26
demen 2015-03-18 12:14:45 +08:00
关注公众号这步已经搞定了 , 来看这个http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html
|
27
knightlhs 2015-03-18 12:53:50 +08:00
@benter 对于已经关注的用户 获取用户信息的 OpenID 可以使用静默方式进行
此方式不会告知用户授权#19 的 URL 就是拿到了 OpenID 的典范 然后根据 OpenID 服务号可以异步去获取你的身份信息 包括用户名 头像 地区等 |
28
moxiami 2015-12-28 23:10:16 +08:00
挖个坟,最近正好在关注这个问题,好像没那么简单,做了几个测试,结论:
1 、尝试过同一 IP 下的两个终端,下载的 ipa 是同一个文件; 2 、下载 App 后,尚未打开(还没弹出“信任”、“不信任”之前),关闭 safari 页面、清空 safari 数据、重启路由器(更新 IP ),打开 App ,貌似还可以关联上 |
29
zhuziyi 2016-01-31 17:01:37 +08:00
这类应用都是通过「企业应用」安装,又没说你危害?另外他们的账号跟手机是怎么确定唯一标识的?
|
30
YLGG 2016-03-07 22:21:14 +08:00
我比较想知道到底要怎么破?
|