V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
815979670
V2EX  ›  信息安全

意外发现幕布居然明文存储用户密码,还返回给了前端

  •  2
     
  •   815979670 · 38 天前 · 6721 次点击
    这是一个创建于 38 天前的主题,其中的信息可能已经有所发展或是发生改变。
    通过浏览器 使用密码登录幕布,点了登录没反应,出于习惯看了一眼交互请求。
    结果发现 幕布不但明文存储了用户密码,还把密码发送到了浏览器端,由前端做密码校验?
    真要是这样就有点离谱了感觉
    ![]( )
    第 1 条附言  ·  38 天前

    官方回复 encryptPassword 字段 不是用户登录密码 是加密文档的密码 https://i.imgur.com/FapbdP7.png

    30 条回复    2025-05-08 10:39:53 +08:00
    LawlietZ
        1
    LawlietZ  
       38 天前
    老生常谈
    coolcoffee
        2
    coolcoffee  
       38 天前   ❤️ 1
    看返回字段就能猜到是后台偷懒直接用 select * from user 作为返回结果了。
    craftsmanship
        3
    craftsmanship  
       38 天前 via Android
    而且字段名还叫 encryptPassword🤣
    wancaibida
        4
    wancaibida  
       38 天前
    草台班子
    putaozhenhaochi
        5
    putaozhenhaochi  
       38 天前 via Android
    这。。。离谱
    jydeng
        6
    jydeng  
       38 天前
    说明也没有专业测试、安全。
    helone
        7
    helone  
       38 天前
    。。。这事情往前推 10 年,发生在 2015 年我也觉得很离谱,就算 CSDN 上一堆垃圾教程也没有教过让前端去验证密码的
    gam2046
        8
    gam2046  
       38 天前
    并未重现。

    在密码不正确时



    在密码正确时

    Oct1a
        9
    Oct1a  
       38 天前
    已经被修复了
    815979670
        10
    815979670  
    OP
       38 天前
    @gam2046 改个密码试试, 我这里显示的是我上一个密码,而且你这里返回了 encryptPassword 只是没值
    aaxx2xx
        11
    aaxx2xx  
       38 天前   ❤️ 1
    幕布现在是做 flomo 那两个人接手的吧?倒是看到不少人说幕布丢数据的。
    我自己对这个开发者印象也不是很好,所以幕布和 flomo 都很久没用了。
    gam2046
        12
    gam2046  
       38 天前   ❤️ 1
    @815979670 #10 >> 还把密码发送到了浏览器端,由前端做密码校验

    这就已经不成立了,密码错误时,并不会返回任何有效信息,因此也不存在前端校验密码,至于验证通过后,后端发送了密码或者你说的上一次密码,这是另一回事了。


    原则上已经通过验证的用户取得自己的密码,相对来说,并没有很大的安全风险。假设存在 cookie/token 泄露的情况下,即使服务端不返回密码,恶意攻击者也同样可以操作账户。

    唯一可能的风险隐患就是 XSS 。
    weegc
        13
    weegc  
       38 天前
    草台班子
    liubaicai
        14
    liubaicai  
       38 天前
    显然不是前端做密码校验,而是密码存在用户表,返回用户信息没过滤
    ColdBird
        15
    ColdBird  
       38 天前
    有点幽默了
    cwliang
        16
    cwliang  
       38 天前
    之前在某赛事购票网站看到过前端发明文验证码的。当时是换手机号了,但是之前的手机号还有积分能抵扣优惠,就想把之前账号找回来,然后就在控制台看到明文验证码,成功绑定新手机号。离了个大谱
    815979670
        17
    815979670  
    OP
       38 天前   ❤️ 1
    @gam2046 #12 这样说的话 唯一的风险就是明文存储用户密码了
    exiaoxing
        18
    exiaoxing  
       38 天前
    让我想起来好像是哪个驾校在登录的时候会把密码拼到 url 中做跳转。。。。
    totoro52
        19
    totoro52  
       38 天前
    是密码正确才会返回整个用户实体,估计偷懒直接丢了整个实体出来,正常是要倒一下的
    Torpedo
        20
    Torpedo  
       38 天前
    前端就算校验,也是根据后端返回做的逻辑
    最离谱的还是明文存密码
    其次是返回密码给前端做逻辑
    retrocode
        21
    retrocode  
       38 天前
    应该是已经修复了, 我此前没绑定手机号, 一直是微信登录, 刚才绑定手机号, 并连续修改了两次密码, 接口未返回明文密码, 修复的真快啊......... 还是说是之前的某个 bug, 你的密码一直在缓存里没有清除, 你上次改密码和登录是什么时候
    yolee599
        22
    yolee599  
       38 天前 via Android
    最大的问题确实是不该用明文储存密码
    815979670
        23
    815979670  
    OP
       38 天前
    @retrocode 上次修改密码 至少是 24 年 11 月之前



    刚试了一下 依然会返回密码,应该是上面提到的 程序员偷懒 直接 select * 了,然后我这个账号在某些情况下 给 encryptPassword 字段写入了值
    oneisall8955
        24
    oneisall8955  
       38 天前
    未复现,空的
    815979670
        25
    815979670  
    OP
       38 天前
    @oneisall8955 是加密文档的密码
    linyi01
        26
    linyi01  
       38 天前 via iPhone
    @aaxx2xx #11 这个印象有啥讲究不,一直想试试 flomo 的,也听过他们的播客,主观印象还不错
    retrocode
        27
    retrocode  
       38 天前
    @815979670 #25 复现了 是加密文档密码
    Chicagoake
        28
    Chicagoake  
       38 天前
    @linyi01 目前用下来没什么问题,就是体量小开发慢。
    PaulSamuelson
        29
    PaulSamuelson  
       38 天前
    别对前端要求太多
    shintendo
        30
    shintendo  
       37 天前   ❤️ 1
    @PaulSamuelson 不是哥们,明文返回密码跟前端有什么关系
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2502 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:54 · PVG 19:54 · LAX 04:54 · JFK 07:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.