V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
eason1874
V2EX  ›  全球工单系统

多家云服务商网站 API 随意暴露用户个人信息 @腾讯云 @又拍云 @七牛云

  •  3
     
  •   eason1874 · 2020-03-21 11:25:35 +08:00 · 3360 次点击
    这是一个创建于 1491 天前的主题,其中的信息可能已经有所发展或是发生改变。

    去年给各家云服务商网站做了个检查,发现他们只给前端页面展示的个人信息脱敏,网站 AJAX API 的就完全是明文。比如手机号在网页显示 138****1234,实际上在 API 返回数据里有完整手机号。

    我当时看到每家都这样暴露用户注册邮箱、手机号、姓名、身份证号等,想着只要我的浏览器不装不靠谱的扩展,应该问题也不大。

    过年一年了今天突然想起,又去各大家网站检查了一下,发现居然只有阿里云进行了改进,其他家只改进个别接口?而且发现 @腾讯云 不仅暴露前端需要的信息,居然连前端完全不需要的认证银行卡信息也暴露了?

    我没有开玩笑,以下列几个接口,大家可以自行查证:

    几乎每家都有暴露实名认证的姓名和身份证后 4 位。
    
    腾讯云接口 /cgi/login?action=checkLogin  返回的 data.ownerInfo.passedBankInfo 里有认证用的银行卡信息(包括银行名、姓名、卡号、开户行),认证通过以后前端都没有银行卡展示了,完全用不着的东西不读取不行吗?你读取了还要完整返回,这是想干嘛?故意留个口子给恶意扩展读取用户信息?
    
    又拍云控制台前端隐藏了手机号中间几位,然而接口 /accounts/profile/ 返回的是完整手机号。想要明文展示你就明文展示,何必做这种自欺欺人的行为呢?我没有实名认证,我要实名认证了怕是也在 /api/accounts/certificate/ 返回我完整的认证信息吧?
    
    七牛云前端也隐藏了手机号中间几位,请求接口 /api/gaea/user/overview 返回的也是完整手机号。
    

    我说各家云,你们要像青云那样完整读取了也在网站完整展示,我好歹知道其中风险。你们完整读取了,却装模做样已经脱敏,在前端按脱敏格式显示,绿茶婊行为吗?

    请各家云内部人员或同事看到了,反馈上去,尽快修改。你们这样使用用户个人信息肯定是不合规的

    25 条回复    2020-03-22 17:14:34 +08:00
    loading
        1
    loading  
       2020-03-21 11:35:19 +08:00
    哇,后端出来背锅。这明显是通用接口一把嗦了。
    opengps
        2
    opengps  
       2020-03-21 11:36:50 +08:00
    某些无良网站就是这样偷取用户手机号的
    shansing
        3
    shansing  
       2020-03-21 11:41:24 +08:00   ❤️ 1
    我想到某小厂 IM 软件,查看好友的时候好友整个 accountInfo 对象都传过来,还包括密码。
    eason1874
        4
    eason1874  
    OP
       2020-03-21 12:51:52 +08:00
    @loading #1 看样子就是调用微服务获取用户信息,然后未经脱敏,也不按需过滤就直接返回了。

    @opengps #2 对,这种 API 就是某些网站获取访客 QQ、手机号的渠道之一。

    @shansing #3 个人信息被泄露,防不胜防。
    also24
        5
    also24  
       2020-03-21 13:00:12 +08:00
    之前因为类似的问题专门和同事沟通过,我一再强调,不需要使用的字段,一个都不传。

    但确实还会遇到很多人为了图省事儿,一整个表直接发出来(毕竟这样方便,ORM 直接出结果)。
    lanternxx
        6
    lanternxx  
       2020-03-21 13:07:46 +08:00
    试了一下,我的腾讯云返回的 passedBankInfo 是空的
    lanternxx
        7
    lanternxx  
       2020-03-21 13:08:09 +08:00
    @lanternxx #6 不好意思 刚发现我是微信认证的 没用银行卡
    chotow
        8
    chotow  
       2020-03-21 13:10:16 +08:00
    七牛云和又拍云复现成功,腾讯云因为没绑定银行卡,不清楚。
    wangxiaoaer
        9
    wangxiaoaer  
       2020-03-21 13:22:44 +08:00
    如果是登陆后返回给个人的接口这样有啥问题吗?不登陆用户又看不到别人的。

    第三方拦截?
    also24
        10
    also24  
       2020-03-21 13:25:28 +08:00
    @wangxiaoaer
    楼主在主贴里其实已经写到了其中一种获取方式:恶意扩展
    attker
        11
    attker  
       2020-03-21 13:27:25 +08:00 via iPhone
    @wangxiaoaer 很多信息哪怕登录后也是敏感的,例如银行卡身份证号,它可用这个信息去爆破别的账号信息。被盗往往就是从薄弱的环节开始逐个爆破
    mejee
        12
    mejee  
       2020-03-21 13:35:55 +08:00
    个人感觉还说的过去。因为是登录鉴权后才返回的,要是自己浏览器都不安全.......
    eason1874
        13
    eason1874  
    OP
       2020-03-21 13:47:56 +08:00   ❤️ 1
    @also24 #5 可惜很多人意识不到无用的暴露会增加潜在的风险。

    @lanternxx #6
    @chotow #8

    腾讯云控制台首页看 /cgi/capi?cmd=GetCurrentUserInfoV2 这个接口的 data.data.authInfo 有姓名、身份证号、身份证地址。

    @wangxiaoaer #9 看过国产区视频吧?那么多“百度云泄露”你知道怎么来的吗?有一部分就是浏览器恶意扩展偷了分析链接和密码去下载的。

    @mejee #12 浏览器安全很重要,但这不是能随意暴露无关用户信息的理由。像手机号、身份证、银行卡这些信息在他们前端网页都脱敏了,说明他们也知道这不能随意展示,那为什么 API 就完整读出来呢?网站完全用不着的,根本不用读,读了只会增加用户信息被泄露的风险。
    diaosi
        14
    diaosi  
       2020-03-21 14:46:29 +08:00
    提交 tsrc,说不定能换十块钱;如果腾讯在 hackerone 上有项目,说不定能换个几百块钱。
    lanternxx
        15
    lanternxx  
       2020-03-21 16:27:29 +08:00
    x 度云加速甚至直接返回手持身份证正反面照片,连个水印都没有
    dingyx99
        16
    dingyx99  
       2020-03-21 16:35:06 +08:00
    七牛和腾讯复现成功,因为腾讯不是银行卡认证的所以字段为空
    jin7
        17
    jin7  
       2020-03-21 16:43:09 +08:00
    太可怕了 浏览器扩展都是随便装的 也不可能去审查它的代码 而且很多扩展是闭源的
    Jaosn
        18
    Jaosn  
       2020-03-21 16:53:28 +08:00
    我以为就我公司这样,没想到大厂也一个屌样
    eason1874
        19
    eason1874  
    OP
       2020-03-21 17:19:36 +08:00
    @diaosi #14 这我倒没想到,有空我提交个看看他们处理不。

    @lanternxx #15 这个更严重,你提交个工单反馈看看。

    @dingyx99 #16 这个银行卡信息在前端都没有入口了,好像是早期认证方式,我新账号也没有填过银行卡。根本用不着的东西他们也读出来,增加无端风险。

    @jin7 #17 所以得用上多用户功能,建两个 chrome 快捷方式,一个 –profile-directory=”Default” 一个 –profile-directory=”Profile 1″。默认的尽量少安装,而且只安装自己审查过的或者在 chrome webstore 上架的扩展,敏感网站都用这个上。另一个就随意安装,但不上敏感网站。

    @Jaosn #18 看不见绩效的东西,有时候反而是小公司比较有原则。
    hst001
        20
    hst001  
       2020-03-21 19:15:34 +08:00
    没人管就是这样,怎么方便怎么来
    PerFectTime
        21
    PerFectTime  
       2020-03-21 20:36:11 +08:00
    楼主你艾特一下 @tencentcloud 我降权了艾特他收不到消息
    123444a
        22
    123444a  
       2020-03-22 01:13:37 +08:00 via Android
    eason1874
        23
    eason1874  
    OP
       2020-03-22 10:47:09 +08:00
    @tencentcloud 来看你家无用接口是怎么增加个人信息暴露的风险。
    123444a
        24
    123444a  
       2020-03-22 14:22:45 +08:00 via Android
    在欧洲起诉腾讯云违反欧盟私隐条例能不能获得巨额回报
    Coioidea
        25
    Coioidea  
       2020-03-22 17:14:34 +08:00
    好多扒信息的都是利用的类似 api 吧!希望改进啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2706 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:16 · PVG 23:16 · LAX 08:16 · JFK 11:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.