通过浏览器 使用密码登录幕布,点了登录没反应,出于习惯看了一眼交互请求。
结果发现 幕布不但明文存储了用户密码,还把密码发送到了浏览器端,由前端做密码校验?
真要是这样就有点离谱了感觉

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

老生常谈

看返回字段就能猜到是后台偷懒直接用 select * from user 作为返回结果了。

而且字段名还叫 encryptPassword🤣

草台班子

这。。。离谱

说明也没有专业测试、安全。

。。。这事情往前推 10 年,发生在 2015 年我也觉得很离谱,就算 CSDN 上一堆垃圾教程也没有教过让前端去验证密码的

并未重现。

在密码不正确时

在密码正确时

已经被修复了

改个密码试试, 我这里显示的是我上一个密码,而且你这里返回了 encryptPassword 只是没值

幕布现在是做 flomo 那两个人接手的吧?倒是看到不少人说幕布丢数据的。
我自己对这个开发者印象也不是很好,所以幕布和 flomo 都很久没用了。

#10 >> 还把密码发送到了浏览器端,由前端做密码校验

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

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

唯一可能的风险隐患就是 XSS 。

草台班子

显然不是前端做密码校验,而是密码存在用户表,返回用户信息没过滤

有点幽默了

之前在某赛事购票网站看到过前端发明文验证码的。当时是换手机号了,但是之前的手机号还有积分能抵扣优惠,就想把之前账号找回来,然后就在控制台看到明文验证码,成功绑定新手机号。离了个大谱

#12 这样说的话 唯一的风险就是明文存储用户密码了

让我想起来好像是哪个驾校在登录的时候会把密码拼到 url 中做跳转。。。。

是密码正确才会返回整个用户实体,估计偷懒直接丢了整个实体出来,正常是要倒一下的

前端就算校验,也是根据后端返回做的逻辑
最离谱的还是明文存密码
其次是返回密码给前端做逻辑

应该是已经修复了, 我此前没绑定手机号, 一直是微信登录, 刚才绑定手机号, 并连续修改了两次密码, 接口未返回明文密码, 修复的真快啊......... 还是说是之前的某个 bug, 你的密码一直在缓存里没有清除, 你上次改密码和登录是什么时候

最大的问题确实是不该用明文储存密码

上次修改密码 至少是 24 年 11 月之前

刚试了一下 依然会返回密码,应该是上面提到的 程序员偷懒 直接 select * 了,然后我这个账号在某些情况下 给 encryptPassword 字段写入了值

未复现,空的

是加密文档的密码

#11 这个印象有啥讲究不,一直想试试 flomo 的,也听过他们的播客,主观印象还不错

#25 复现了 是加密文档密码

目前用下来没什么问题,就是体量小开发慢。

别对前端要求太多