逆天!干了 3 年的同事用 base64 编码做 token 并且把密码也放了进去

243 天前
 xhatt510

最近做项目,他搞了用户登陆和状态保持。

当时存的时候他跑过来问我密码要不要用 base64 加密存。
我说这和明文没啥区别把,区别就是比明文多浪费1/3空间。不如直接加盐然后存 md5 。

当我看到 token 的时候,我人直接傻了。

这就是 token YWRtaW58cGFzczEyMzQ1NnwxNzEzNzcxNzg4

我相信只要干过开发的人一眼就能认出来这是什么东西。 我本来以为这已经够逆天了。解码出来的内容才真的让人窒息。

admin|pass123456|1713771788

数据库的 user 表里面的用户名和密码也都是base64 编码存储的。

我本以为这种最基本的常识问题,只可能在一个实习生身上发生,但是这个同事至少在这里干了 3 年了

在他的知识库里 base64 编码=加密

然后只有这种格式的才叫json。(用一对花括号包裹{}

{
    "test": 1
}

这种不叫json,更别说其他的值类型的被叫json

[
    "abc",
    "def"
]
26583 次点击
所在节点    程序员
205 条回复
oott123
243 天前
你听说过 basic auth 吗(

严格来说把密码当成 token 也不是不行
soundlife
243 天前
有些离谱,但不过多评价,因为我也是菜鸡。每个人菜的方向都不一样吧
xhatt510
243 天前
@oott123 听过,用过。这样的嘛?我在学习学习
xhatt510
243 天前
@soundlife 我感觉特别窒息,每次和这个人有交集的时候 都有一种无力感。而且特别犟。
coffeygao
243 天前
你解密出来的数据出现了手机号,看起来不是很友好,希望下次注意,避免泄露他人隐私。
matepi
243 天前
编解码、加解密、摘要、加盐

CRUD boy 确实很多不认识的

再进一步地上面的都认识了,是不是就安全了呢……又要讲什么 防重放、中间人

那不得又是一堆人不认识的

咋办,得教得学啊
soundlife
243 天前
@coffeygao 10 位的
xhatt510
243 天前
@coffeygao 最后那个是个时间戳。不是手机号
yuzo555
243 天前
前后端交互过程中,强制 HTTPS 的情况下,这样做可以的。
数据库这样存不行,不能存明文。
gav1nwwk
243 天前
高级
GOOD21
243 天前
@coffeygao 仔细看,是时间戳。
coffeygao
243 天前
@xhatt510 @soundlife
抱歉,我没仔细看。
xhatt510
243 天前
@matepi 没有绝对安全,只有相对安全。我只是觉得这应该是一个开发需要掌握的最基本的知识。
pdxjun
243 天前
@xhatt510 #4 深有感受
tool2dx
243 天前
他可能觉得自己的 cookie 保存的密码,只有自己能看,看不了别人的 cookie (密码)。
povsister
243 天前
世界就是依赖草台班子运行滴
stay calm
gesse
243 天前
你直接告诉他用 jwt 就行了,发帖没必要。
xhatt510
243 天前
@gesse 人家写 java 的,我做 python 的,关于 token 别人也没问我,也轮不到我去指点。关于存数据库的 我说了数据库不要存 base64 之后的内容,人家不还是照存不误。所以只能发帖吐槽。
blackmirror
243 天前
下次你们系统上线的时候通知下
xhatt510
243 天前
@povsister 见识到了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1034660

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX