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

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

  •  1
     
  •   815979670 · 1 天前 · 5590 次点击
    通过浏览器 使用密码登录幕布,点了登录没反应,出于习惯看了一眼交互请求。
    结果发现 幕布不但明文存储了用户密码,还把密码发送到了浏览器端,由前端做密码校验?
    真要是这样就有点离谱了感觉
    ![]( )
    第 1 条附言  ·  1 天前

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

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

    在密码不正确时



    在密码正确时

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

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


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

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



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