杂谈
最近在进行一些相关的课题,就写篇文章总结分享一下,如果有疑问或者观点也欢迎大家讨论。
百度小程序的身份识别机制应该是国内小程序中最为复杂的,但是具体的安全性暂时我还不清楚,由于百度小程序好像不能个人开发,所以暂时还没有进行任何相关的测试。百度小程序采用的是swanId、OpenID、UnionID、uid、appid结合的身份识别机制。
身份识别标识汇总
- swanID:
- swanID是用户设备的标识,对于同一台设备上的不同开发者开发的智能小程序,swanID是相同的。
- swanID的长度不超过100个字符。
- 可以通过swan.getSwanId()方法获取swanID。
- OpenID:
- OpenID是用户身份标识,由appid和uid生成。
- 不同用户登录同一个小程序获取到的OpenID是不同的,同一个用户登录不同小程序获取到的OpenID也不同。
- 开发者可以通过用户授权后,请求session_key接口获取到OpenID。
- UnionID:
- UnionID是用于实现跨小程序的用户区分的标识。
- 每个用户在同一开发者账号下的小程序内,UnionID是唯一的。
- UnionID获取依赖用户登录授权,通常用于区分同一用户在不同小程序间的身份。
- uid:
- uid是用户标识的一部分,通常与OpenID相关联,用于唯一标识用户。
- 不同用户拥有不同的uid。
- appid:
- appid是小程序的唯一标识,用于区分不同的小程序。
- 不同开发者拥有不同的appid。
swanID用于标识用户设备
| 身份识别标识 | 作用 |
|---|---|
| swanID | 用于标识用户设备 |
| OpenID | 用于标识同小程序用户身份 |
| UnionID | 用于标识同平台用户身份 |
| uid | 用于唯一标识用户 |
| appid | 用于唯一标识小程序 |
-
swanID:
- 机制:swanID是百度智能小程序中的一个设备标识,它用于唯一标识用户所使用的设备。对于同一台设备上的不同开发者开发的智能小程序,swanID是相同的。用户在同一设备上使用同一个开发者的不同智能小程序,都会获得相同的swanID。
- 用途:swanID通常用于识别用户所使用的设备,以便在同一设备上提供一致的用户体验。例如,可以使用swanID来标识设备的唯一性,以便在多个小程序之间共享数据或状态。
-
OpenID:
- 机制:OpenID是用户身份标识,由appid(小程序的唯一标识)和uid(用户标识)生成。不同用户登录同一个小程序会获得不同的OpenID,同一个用户登录不同小程序也会获得不同的OpenID。
- 用途:OpenID用于标识用户的身份,通常与用户授权相关。开发者可以通过请求用户授权后,通过调用相应的接口来获取用户的OpenID。OpenID用于在小程序中标识用户,以便提供个性化的服务或访问用户的数据。
-
UnionID:
- 机制:UnionID用于实现跨小程序的用户区分。每个用户在同一开发者账号下的小程序内,UnionID是唯一的。不同开发者账号下的小程序可能会有不同的UnionID。通常,UnionID获取依赖用户登录授权。
- 用途:UnionID主要用于标识同一用户在不同小程序中的身份,以便实现用户信息的跨小程序共享或一致性体验。它通常用于多个小程序之间共享用户的信息。
-
uid:
- 机制:uid是用户标识的一部分,通常与OpenID相关联,用于唯一标识用户。不同用户拥有不同的uid。uid通常由系统或数据库分配。
- 用途:uid用于在服务器端唯一标识用户,通常用于数据存储、查询和管理。它与OpenID关联,但不同于OpenID,它更常用于后端开发,用于标识和管理用户的数据。
-
appid:
- 机制:appid是每个智能小程序的唯一标识符。不同开发者拥有不同的appid,每个小程序都有一个独特的appid。
- 用途:appid用于标识和区分不同的小程序,以便百度智能小程序平台能够正确路由用户请求。开发者需要在开发和部署小程序时使用正确的appid,以确保其小程序能够正常运行并与其他小程序区分开来。
总结
百度小程序的身份识别就是swanId、OpenID、UnionID、uid、appid结合的身份识别机制。我认为安全应该是表面看起来相对安全的,要进行用户匹配也相对困难,但是采用多种机制同样有问题,首先是攻击有了更多的选择,其中的机制无法做到每一个都是相同安全的,一定存在安全性能的强弱差距,而进行身份识别时并不是每个环节都会验证全部的身份标识,所以有可能存在任意登录或者获取他人信息等问题,并且百度小程序开发社区中的帖子回复率是这几个开发社区中最低的,存在大量古早的报错或疑问未回复,也不知道是否进行了修改。总之,身份识别机制做的还是很用心的,并且对用户的信息保密也做得很好。