用户设置昵称、头像,就是想公开展示给其他人看的,然而微信小程序团队认为这些资料是用户隐私数据,需要用户授权才能获取。
嗯,好吧,你说是就是。
还有,微信小程序团队认为,没经过用户授权程序就直接能显示用户头像和昵称的话,用户会觉得很奇怪,所以禁止程序直接获取用户信息,必须要通过 getUserInfo 组件来授权获取。
这个逻辑我能理解,估计大家也都能,好了然后高潮来了:
为了让大家能直接显示微信用户头像、昵称,微信小程序团队体贴地提供了一套 open-data 组件,可以用来直接显示用户头像、昵称、性别、城市等所有“隐私数据”,无需用户授权。
嗯,说好的“用户会觉得很奇怪”呢?
对了还有:
微信小程序团队认为用户 openId 是敏感信息,然而小程序可以通过 wx.login + code2session 直接获取,整个过程完全无需用户同意。
笑死我了,哈哈哈哈哈哈哈哈哈哈哈......
...
扶额,欲哭无泪......
...
呸!
1
ersic 2020-03-17 18:01:27 +08:00 via Android 1
头像跟昵称本来就是隐私呀,主动授权可以拿到头像昵称等信息然后你能存下来。这个 open data 组件我没用过,但我猜那个仅仅是显示在用户端,服务端是拿不到的,两者没啥冲突啊。
|
2
luckyrayyy 2020-03-17 18:03:08 +08:00
本来就是隐私,很多人昵称是姓名,头像是本人。
|
3
GM OP @ersic 你没 get 到关键点:
[没经过用户授权程序就直接能显示用户头像和昵称的话,用户会觉得很奇怪] 然后 [通过 open-data 组件可以直接显示用户头像、昵称、性别、城市等所有“隐私数据”,无需用户授权。] |
4
ersic 2020-03-17 18:06:25 +08:00 via Android
@GM 我觉得这个措施是为了保护用户隐私没啥问题。直接显示用户会觉得很奇怪,是官方在哪写的?还有这种奇怪的理由。
|
5
lshero 2020-03-17 18:06:56 +08:00
只是不想简单的让你直接把用户的头像和昵称直接发送到你自己的服务器上去薅用户的关系链而已
|
6
falcon05 2020-03-17 18:09:30 +08:00 via iPhone
楼上说得对,我觉得这样处理没毛病
|
7
amon 2020-03-17 18:12:11 +08:00 2
当别的产品要获取你微信的信息时,任何信息都是隐私,
当微信要获取你的信息时,任何信息都不是隐私。 |
8
qinrui 2020-03-17 18:14:16 +08:00 via iPhone
张小龙:一亿人教我如何做微信
|
9
6IbA2bj5ip3tK49j 2020-03-17 18:14:45 +08:00
这完全没问题啊。
1,open-data,用户界面能显示,里面数据你拿不到 2,openId,微信没说是隐私数据啊 |
10
different 2020-03-17 18:17:51 +08:00 via Android 1
这不是隐私吗?相反,我觉得这样非常人性化,我不小心点开了你的小程序,或者只是打算进去看看是什么东西,但我压根就不想让你知道我是谁。或者不想让你知道我来过。我凭什么不小心点进来了,就得告诉你我的头像和昵称?
🐶🐶🐶🐶🐶🐶 |
11
eason1874 2020-03-17 18:23:46 +08:00
头像、昵称是用户隐私,很多人的头像昵称可以用来社工搜索。
OpenID 是脱敏的,不同应用获取同一个用户的 OpenID 得到的值不一样。 |
14
eason1874 2020-03-17 18:27:32 +08:00
@GM #12 OpenID 只对你的应用敏感,对用户不敏感,因为每个应用获取到的值是不一样的,在你这里拿到某个用户的 OpenID 只能在你这里用,去别处用不了。
|
16
eason1874 2020-03-17 18:57:40 +08:00
@GM #15 你只向用户暴露他自己的 OpenID 就不敏感,你要不小心批量暴露了就敏感,具体怎么个敏感法看你的标准和用法。
|
17
GM OP |
18
yujiang 2020-03-17 19:07:52 +08:00 via Android
张小龙:又是一个教我做微信的
|
19
duxiansen 2020-03-17 19:12:40 +08:00
我也觉得 OpenID 这样处理没毛病,只对单个应用有效,如果需要一个平台下所有应用关联的话,需要用 UnionID,这个在小程序里需要授权。open-data 展示的数据拿不到,只能自己看,类似 iOS 应用也可以不用授权就能读取到相册,但是应用本身获取不到相册里面的内容
|
20
eason1874 2020-03-17 19:24:06 +08:00
@GM #17 我说了,看你的标准和用法。如果你把 OpenID 作为查询参数且链接没有加密就暴露给用户,这时候用户又得到了你其他用户的 OpenID,那他就可以构造针对其他用户的假请求。
|
21
mumbler 2020-03-17 19:26:38 +08:00 via Android
@GM 如果你用 openid 作为用户唯一标识去公开传输,我批量拿到你用户 openid 就可以攻击你啊,模拟用户在你程序操作,发表言论,这还不够敏感么,所以微信建议用 sessiondata 方式,而不要公开传输 openid
|
22
GM OP 还是第一次听说用户能在微信里自己构造请求,求用户在微信里构造假请求的方法。
微信开发工具里倒是可以,问题是你得加入到开发者列表里才能用这个工具。 |
23
aWangami 2020-03-17 23:48:14 +08:00 via Android
如果说这么一个场景,你在 Chrome 里面设置了头像和昵称,当你打开任意一个网站的时候都可以不经过授权网站就能拿到这些信息,你觉得是否合理?
|
24
Tokin 2020-03-18 00:28:55 +08:00
getUserInfo 需要授权才能获取,服务器也能拿到这个数据。
open-data 仅仅只是用户端显示,但是服务器拿不到这里的数据。 想要 openId,不要先经过 getUserInfo 吗?也就是 getUserInfo 授权一次之后之后无需授权,这么处理完全没问题吧。 |
25
alphatoad 2020-03-18 04:20:16 +08:00 via iPhone
就是因为有你这样不尊重隐私的开发者我们才不得不用 iPhone
|
26
GM OP |
28
GM OP @xingyuc 你说能干嘛?嘛都干不了。这东西就跟用户 ID 一个样,就纯粹一个 guid 而已,除了该平台之外,任何人拿了都没任何用处。
|
30
feiandxs 2020-04-27 22:04:41 +08:00
@GM code2session 这个记不清了,其实更坑的我认为还是在公众号里。
不过你说的 open-data 组件还真的没问题。 因为这个组件只限于用户本地可以看得到,可以读取,对开发者是屏蔽了的,开发者并不能通过 open-data 这个组件获取到任何用户信息,只有那个用户自己访问的时候自己看得到而已。 |
31
GM OP @feiandxs 你还是看明白为什么我觉得好笑:
第一,官方团队说:[没经过用户授权程序就直接能显示用户头像和昵称的话,用户会觉得很奇怪] 第二,官方团队又提供一套 open-data 组件可以直接显示用户头像、昵称、性别、城市等所有“隐私数据”,无需用户授权。 也就是说,实际上小程序是可以[没经过用户授权程序就直接能显示用户头像和昵称]的!直接打脸第一条。 |