小程序
小游戏
企业微信
微信支付
扫描小程序码分享
后端同事希望省去登录时加解密的过程,直接传递openid并且用openid直接请求各种业务接口。 作为前端,我查了很多地方又没办法告诉他这个为什么不安全。
想请问一下官方团队,
这样做是否安全,
为什么。
6 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
作个比如,在 Web 开发,直接用 username 作为用户凭证请求接口,觉得安全吗?
自定义第三方 sessionid,业务后台可以设定过期时间,直接用 openid 作为 sessionid,最明显一个缺点就是无法设定过期时间,一旦被中间截获了 openid,则可以一直利用。
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
小明同学很稀罕同桌小花,有天看到小花在某个微信公众号写日记,好巧,猥琐的小明看到并记住了小花的开屏密码。等课间小花同学出去时,将她手机开机并打开了那个公众号,进入了个人中心。
哎呀,时间不够看呀,于是选择了用浏览器打开看到了URL。
你说巧不巧,这个站竟然在URL里有个openid的传值,没有登陆鉴权。
小明用他无比迅捷的手速把url发给了自己的号,还不着痕迹地打扫了战场。
以后的日子里,小明时刻都能通过点击那个url翻看小花的日记,真是爽煞,发起了向女神攻心的神级技能。
小程序第一次会给一个临时code,再让后端去做获取openid,本意就是不想让前端直接获取到openid,openid如果被截获,那就不安全。如果openid给前端没什么关系,那为什么不直接就让前端获取到openid,还多此一举搞一个只能消费一次的code。
实际上如果openid仅作为身份标识,形如userid那样,可以暴露出来,但如果用作鉴权肯定是不行的,如果非得拿来鉴权那就用云数据,然后配置安全规则。
用openid去请求接口,为什么不安全呢,感觉没什么问题
如果使用openid实现自动登录呢?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
作个比如,在 Web 开发,直接用 username 作为用户凭证请求接口,觉得安全吗?
自定义第三方 sessionid,业务后台可以设定过期时间,直接用 openid 作为 sessionid,最明显一个缺点就是无法设定过期时间,一旦被中间截获了 openid,则可以一直利用。
小明同学很稀罕同桌小花,有天看到小花在某个微信公众号写日记,好巧,猥琐的小明看到并记住了小花的开屏密码。等课间小花同学出去时,将她手机开机并打开了那个公众号,进入了个人中心。
哎呀,时间不够看呀,于是选择了用浏览器打开看到了URL。
你说巧不巧,这个站竟然在URL里有个openid的传值,没有登陆鉴权。
小明用他无比迅捷的手速把url发给了自己的号,还不着痕迹地打扫了战场。
以后的日子里,小明时刻都能通过点击那个url翻看小花的日记,真是爽煞,发起了向女神攻心的神级技能。
小程序第一次会给一个临时code,再让后端去做获取openid,本意就是不想让前端直接获取到openid,openid如果被截获,那就不安全。如果openid给前端没什么关系,那为什么不直接就让前端获取到openid,还多此一举搞一个只能消费一次的code。
实际上如果openid仅作为身份标识,形如userid那样,可以暴露出来,但如果用作鉴权肯定是不行的,如果非得拿来鉴权那就用云数据,然后配置安全规则。
用openid去请求接口,为什么不安全呢,感觉没什么问题
如果使用openid实现自动登录呢?